Source code

Revision control

Other Tools

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 else,
8
* such as browser/app/profile/firefox.js or mobile/android/app/mobile.js.
9
*
10
* NOTE: Not all prefs should be defined in this (or any other) data file.
11
* Static prefs, especially VarCache prefs, are defined in StaticPrefList.yaml.
12
* Those prefs should *not* appear in this file.
13
*
14
* For the syntax used by this file, consult the comments at the top of
15
* modules/libpref/parser/src/lib.rs.
16
*
17
* Please indent all prefs defined within #ifdef/#ifndef conditions. This
18
* improves readability, particular for conditional blocks that exceed a single
19
* screen.
20
*/
21
22
pref("security.tls.version.min", 1);
23
pref("security.tls.version.max", 4);
24
pref("security.tls.version.fallback-limit", 4);
25
pref("security.tls.insecure_fallback_hosts", "");
26
// Turn off post-handshake authentication for TLS 1.3 by default,
27
// until the incompatibility with HTTP/2 is resolved:
29
pref("security.tls.enable_post_handshake_auth", false);
30
#ifdef RELEASE_OR_BETA
31
pref("security.tls.hello_downgrade_check", false);
32
#else
33
pref("security.tls.hello_downgrade_check", true);
34
#endif
35
pref("security.tls.enable_delegated_credentials", false);
36
37
pref("security.ssl.treat_unsafe_negotiation_as_broken", false);
38
pref("security.ssl.require_safe_negotiation", false);
39
pref("security.ssl.enable_ocsp_stapling", true);
40
pref("security.ssl.enable_false_start", true);
41
pref("security.ssl.enable_alpn", true);
42
43
pref("security.ssl3.ecdhe_rsa_aes_128_gcm_sha256", true);
44
pref("security.ssl3.ecdhe_ecdsa_aes_128_gcm_sha256", true);
45
pref("security.ssl3.ecdhe_ecdsa_chacha20_poly1305_sha256", true);
46
pref("security.ssl3.ecdhe_rsa_chacha20_poly1305_sha256", true);
47
pref("security.ssl3.ecdhe_ecdsa_aes_256_gcm_sha384", true);
48
pref("security.ssl3.ecdhe_rsa_aes_256_gcm_sha384", true);
49
pref("security.ssl3.ecdhe_rsa_aes_128_sha", true);
50
pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", true);
51
pref("security.ssl3.ecdhe_rsa_aes_256_sha", true);
52
pref("security.ssl3.ecdhe_ecdsa_aes_256_sha", true);
53
pref("security.ssl3.dhe_rsa_aes_128_sha", true);
54
pref("security.ssl3.dhe_rsa_aes_256_sha", true);
55
pref("security.ssl3.rsa_aes_128_sha", true);
56
pref("security.ssl3.rsa_aes_256_sha", true);
57
pref("security.ssl3.rsa_des_ede3_sha", true);
58
59
pref("security.content.signature.root_hash",
60
"97:E8:BA:9C:F1:2F:B3:DE:53:CC:42:A4:E6:57:7E:D6:4D:F4:93:C2:47:B4:14:FE:A0:36:81:8D:38:23:56:0E");
61
62
pref("security.default_personal_cert", "Ask Every Time");
63
pref("security.remember_cert_checkbox_default_setting", true);
64
pref("security.ask_for_password", 0);
65
pref("security.password_lifetime", 30);
66
67
// On Windows 8.1, if the following preference is 2, we will attempt to detect
68
// if the Family Safety TLS interception feature has been enabled. If so, we
69
// will behave as if the enterprise roots feature has been enabled (i.e. import
70
// and trust third party root certificates from the OS).
71
// With any other value of the pref or on any other platform, this does nothing.
72
// This preference takes precedence over "security.enterprise_roots.enabled".
73
pref("security.family_safety.mode", 2);
74
75
pref("security.enterprise_roots.enabled", false);
76
77
// The supported values of this pref are:
78
// 0: do not fetch OCSP
79
// 1: fetch OCSP for DV and EV certificates
80
// 2: fetch OCSP only for EV certificates
81
pref("security.OCSP.enabled", 1);
82
pref("security.OCSP.require", false);
83
#ifdef RELEASE_OR_BETA
84
pref("security.OCSP.timeoutMilliseconds.soft", 2000);
85
#else
86
pref("security.OCSP.timeoutMilliseconds.soft", 1000);
87
#endif
88
pref("security.OCSP.timeoutMilliseconds.hard", 10000);
89
90
pref("security.pki.cert_short_lifetime_in_days", 10);
91
// NB: Changes to this pref affect CERT_CHAIN_SHA1_POLICY_STATUS telemetry.
92
// See the comment in CertVerifier.cpp.
93
// 3 = only allow SHA-1 for certificates issued by an imported root.
94
pref("security.pki.sha1_enforcement_level", 3);
95
96
// This preference controls what signature algorithms are accepted for signed
97
// apps (i.e. add-ons). The number is interpreted as a bit mask with the
98
// following semantic:
99
// The lowest order bit determines which PKCS#7 algorithms are accepted.
100
// xxx_0_: SHA-1 and/or SHA-256 PKCS#7 allowed
101
// xxx_1_: SHA-256 PKCS#7 allowed
102
// The next two bits determine whether COSE is required and PKCS#7 is allowed
103
// x_00_x: COSE disabled, ignore files, PKCS#7 must verify
104
// x_01_x: COSE is verified if present, PKCS#7 must verify
105
// x_10_x: COSE is required, PKCS#7 must verify if present
106
// x_11_x: COSE is required, PKCS#7 disabled (fail when present)
107
pref("security.signed_app_signatures.policy", 2);
108
109
// security.pki.name_matching_mode controls how the platform matches hostnames
110
// to name information in TLS certificates. The possible values are:
111
// 0: always fall back to the subject common name if necessary (as in, if the
112
// subject alternative name extension is either not present or does not
113
// contain any DNS names or IP addresses)
114
// 1: fall back to the subject common name for certificates valid before 23
115
// August 2016 if necessary
116
// 2: fall back to the subject common name for certificates valid before 23
117
// August 2015 if necessary
118
// 3: only use name information from the subject alternative name extension
119
pref("security.pki.name_matching_mode", 3);
120
121
// security.pki.netscape_step_up_policy controls how the platform handles the
122
// id-Netscape-stepUp OID in extended key usage extensions of CA certificates.
123
// 0: id-Netscape-stepUp is always considered equivalent to id-kp-serverAuth
124
// 1: it is considered equivalent when the notBefore is before 23 August 2016
125
// 2: similarly, but for 23 August 2015
126
// 3: it is never considered equivalent
127
#ifdef RELEASE_OR_BETA
128
pref("security.pki.netscape_step_up_policy", 1);
129
#else
130
pref("security.pki.netscape_step_up_policy", 2);
131
#endif
132
133
// Configures Certificate Transparency support mode:
134
// 0: Fully disabled.
135
// 1: Only collect telemetry. CT qualification checks are not performed.
136
pref("security.pki.certificate_transparency.mode", 0);
137
138
// Only one of ["enable_softtoken", "enable_usbtoken",
139
// "webauthn_enable_android_fido2"] should be true at a time, as the
140
// softtoken will override the other two. Note android's pref is set in
141
// mobile.js / geckoview-prefs.js
142
pref("security.webauth.webauthn_enable_softtoken", false);
143
144
#ifdef MOZ_WIDGET_ANDROID
145
// the Rust usbtoken support does not function on Android
146
pref("security.webauth.webauthn_enable_usbtoken", false);
147
#else
148
pref("security.webauth.webauthn_enable_usbtoken", true);
149
#endif
150
151
pref("security.ssl.errorReporting.enabled", true);
152
pref("security.ssl.errorReporting.url", "https://incoming.telemetry.mozilla.org/submit/sslreports/");
153
pref("security.ssl.errorReporting.automatic", false);
154
155
// Impose a maximum age on HPKP headers, to avoid sites getting permanently
156
// blacking themselves out by setting a bad pin. (60 days by default)
158
pref("security.cert_pinning.max_max_age_seconds", 5184000);
159
160
// security.pki.distrust_ca_policy controls what root program distrust policies
161
// are enforced at this time:
162
// 0: No distrust policies enforced
163
// 1: Symantec roots distrusted for certificates issued after cutoff
164
// 2: Symantec roots distrusted regardless of date
166
pref("security.pki.distrust_ca_policy", 2);
167
168
// Issuer we use to detect MitM proxies. Set to the issuer of the cert of the
169
// Firefox update service. The string format is whatever NSS uses to print a DN.
170
// This value is set and cleared automatically.
171
pref("security.pki.mitm_canary_issuer", "");
172
// Pref to disable the MitM proxy checks.
173
pref("security.pki.mitm_canary_issuer.enabled", true);
174
175
// It is set to true when a non-built-in root certificate is detected on a
176
// Firefox update service's connection.
177
// This value is set automatically.
178
// The difference between security.pki.mitm_canary_issuer and this pref is that
179
// here the root is trusted but not a built-in, whereas for
180
// security.pki.mitm_canary_issuer.enabled, the root is not trusted.
181
pref("security.pki.mitm_detected", false);
182
183
// Intermediate CA Preloading settings
184
#if defined(RELEASE_OR_BETA) || defined(MOZ_WIDGET_ANDROID)
185
pref("security.remote_settings.intermediates.enabled", false);
186
#else
187
pref("security.remote_settings.intermediates.enabled", true);
188
#endif
189
pref("security.remote_settings.intermediates.bucket", "security-state");
190
pref("security.remote_settings.intermediates.collection", "intermediates");
191
pref("security.remote_settings.intermediates.checked", 0);
192
pref("security.remote_settings.intermediates.downloads_per_poll", 100);
193
pref("security.remote_settings.intermediates.parallel_downloads", 8);
194
pref("security.remote_settings.intermediates.signer", "onecrl.content-signature.mozilla.org");
195
196
#if defined(RELEASE_OR_BETA) || defined(MOZ_WIDGET_ANDROID)
197
pref("security.remote_settings.crlite_filters.enabled", false);
198
#else
199
pref("security.remote_settings.crlite_filters.enabled", true);
200
#endif
201
pref("security.remote_settings.crlite_filters.bucket", "security-state");
202
pref("security.remote_settings.crlite_filters.collection", "cert-revocations");
203
pref("security.remote_settings.crlite_filters.checked", 0);
204
pref("security.remote_settings.crlite_filters.signer", "onecrl.content-signature.mozilla.org");
205
206
pref("general.useragent.compatMode.firefox", false);
207
208
// This pref exists only for testing purposes. In order to disable all
209
// overrides by default, don't initialize UserAgentOverrides.jsm.
210
pref("general.useragent.site_specific_overrides", true);
211
212
pref("general.config.obscure_value", 13); // for MCD .cfg files
213
214
pref("general.warnOnAboutConfig", true);
215
216
// maximum number of dated backups to keep at any time
217
pref("browser.bookmarks.max_backups", 5);
218
219
// Size (in KB) explicitly set by the user. Used when smart_size.enabled == false
220
pref("browser.cache.disk.capacity", 256000);
221
222
pref("browser.cache.disk_cache_ssl", true);
223
// 0 = once-per-session, 1 = each-time, 2 = never, 3 = when-appropriate/automatically
224
pref("browser.cache.check_doc_frequency", 3);
225
// The half life used to re-compute cache entries frecency in hours.
226
pref("browser.cache.frecency_half_life_hours", 6);
227
228
// AppCache over insecure connection is disabled by default
229
pref("browser.cache.offline.insecure.enable", false);
230
231
// enable offline apps by default, disable prompt
232
pref("offline-apps.allow_by_default", true);
233
234
// offline cache capacity in kilobytes
235
pref("browser.cache.offline.capacity", 512000);
236
237
// the user should be warned if offline app disk usage exceeds this amount
238
// (in kilobytes)
239
pref("offline-apps.quota.warn", 51200);
240
241
// Don't show "Open with" option on download dialog if true.
242
pref("browser.download.forbid_open_with", false);
243
244
// Insecure registerProtocolHandler is disabled by default
245
pref("dom.registerProtocolHandler.insecure.enabled", false);
246
247
// Whether or not testing features are enabled.
248
pref("dom.quotaManager.testing", false);
249
250
// Whether or not indexedDB is enabled.
251
pref("dom.indexedDB.enabled", true);
252
// Whether or not indexedDB experimental features are enabled.
253
pref("dom.indexedDB.experimental", false);
254
// Enable indexedDB logging.
255
pref("dom.indexedDB.logging.enabled", true);
256
// Detailed output in log messages.
257
pref("dom.indexedDB.logging.details", true);
258
// Enable profiler marks for indexedDB events.
259
pref("dom.indexedDB.logging.profiler-marks", false);
260
261
// Whether or not File Handle is enabled.
262
pref("dom.fileHandle.enabled", true);
263
264
// Whether or not selection events on text controls are enabled
265
#ifdef NIGHTLY_BUILD
266
pref("dom.select_events.textcontrols.enabled", true);
267
#else
268
pref("dom.select_events.textcontrols.enabled", false);
269
#endif
270
271
// The number of workers per domain allowed to run concurrently.
272
// We're going for effectively infinite, while preventing abuse.
273
pref("dom.workers.maxPerDomain", 512);
274
275
// The amount of time (milliseconds) service workers keep running after each event.
276
pref("dom.serviceWorkers.idle_timeout", 30000);
277
278
// The amount of time (milliseconds) service workers can be kept running using waitUntil promises.
279
pref("dom.serviceWorkers.idle_extended_timeout", 300000);
280
281
// The amount of time (milliseconds) an update request is delayed when triggered
282
// by a service worker that doesn't control any clients.
283
pref("dom.serviceWorkers.update_delay", 1000);
284
285
// Enable test for 24 hours update, service workers will always treat last update check time is over 24 hours
286
pref("dom.serviceWorkers.testUpdateOverOneDay", false);
287
288
// If this is true, TextEventDispatcher dispatches keydown and keyup events
289
// even during composition (keypress events are never fired during composition
290
// even if this is true).
291
pref("dom.keyboardevent.dispatch_during_composition", true);
292
293
// If this is true, TextEventDispatcher dispatches keypress event with setting
294
// WidgetEvent::mFlags::mOnlySystemGroupDispatchInContent to true if it won't
295
// cause inputting printable character.
296
pref("dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content", true);
297
298
// Blacklist of domains of web apps which are not aware of strict keypress
299
// dispatching behavior. This is comma separated list. If you need to match
300
// all sub-domains, you can specify it as "*.example.com". Additionally, you
301
// can limit the path. E.g., "example.com/foo" means "example.com/foo*". So,
302
// if you need to limit under a directory, the path should end with "/" like
303
// "example.com/foo/". Note that this cannot limit port number for now.
304
pref("dom.keyboardevent.keypress.hack.dispatch_non_printable_keys", "www.icloud.com");
305
// Pref for end-users and policy to add additional values.
306
pref("dom.keyboardevent.keypress.hack.dispatch_non_printable_keys.addl", "");
307
308
// Blacklist of domains of web apps which handle keyCode and charCode of
309
// keypress events with a path only for Firefox (i.e., broken if we set
310
// non-zero keyCode or charCode value to the other). The format is exactly
311
// same as "dom.keyboardevent.keypress.hack.dispatch_non_printable_keys". So,
312
// check its explanation for the detail.
313
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");
314
// Pref for end-users and policy to add additional values.
315
pref("dom.keyboardevent.keypress.hack.use_legacy_keycode_and_charcode.addl", "");
316
317
// Blacklist of domains of web apps which listen for non-primary click events
318
// on window global or document. The format is exactly same as
319
// "dom.keyboardevent.keypress.hack.dispatch_non_printable_keys". So, check its
320
// explanation for the detail.
321
pref("dom.mouseevent.click.hack.use_legacy_non-primary_dispatch", "");
322
323
// Whether InputEvent.dataTransfer is enabled.
324
pref("dom.inputevent.datatransfer.enabled", true);
325
326
#ifdef JS_BUILD_BINAST
327
pref("dom.script_loader.binast_encoding.enabled", false);
328
329
// Until we're satisfied that it works nicely, we're restricting
330
// BinAST to a few partner sites:
331
// - A subset of Facebook
332
// - A subset of Cloudflare
333
pref("dom.script_loader.binast_encoding.domain.restrict.list", "*.facebook.com,static.xx.fbcdn.net,*.cloudflare.com,*.cloudflarestream.com,unpkg.com");
334
#endif
335
336
// Fastback caching - if this pref is negative, then we calculate the number
337
// of content viewers to cache based on the amount of available memory.
338
pref("browser.sessionhistory.max_total_viewers", -1);
339
340
pref("ui.use_native_colors", true);
341
pref("ui.click_hold_context_menus", false);
342
// 0 = false, 1 = true, 2 = autodetect.
343
pref("ui.android.mouse_as_touch", 1);
344
345
// Pop up context menu on mouseup instead of mousedown, if that's the OS default.
346
// Note: ignored on Windows (context menus always use mouseup)
347
pref("ui.context_menus.after_mouseup", false);
348
// Duration of timeout of incremental search in menus (ms). 0 means infinite.
349
pref("ui.menu.incremental_search.timeout", 1000);
350
// If true, all popups won't hide automatically on blur
351
pref("ui.popup.disable_autohide", false);
352
353
// 0 = default: always, except in high contrast mode
354
// 1 = always
355
// 2 = never
356
pref("browser.display.document_color_use", 0);
357
pref("browser.display.use_system_colors", false);
358
pref("browser.display.foreground_color", "#000000");
359
pref("browser.display.background_color", "#FFFFFF");
360
pref("browser.display.force_inline_alttext", false); // true = force ALT text for missing images to be layed out inline
361
// 0 = no external leading,
362
// 1 = use external leading only when font provides,
363
// 2 = add extra leading both internal leading and external leading are zero
364
pref("browser.display.normal_lineheight_calc_control", 2);
365
// enable showing image placeholders while image is loading or when image is broken
366
pref("browser.display.show_image_placeholders", true);
367
// if browser.display.show_image_placeholders is true then this controls whether the loading image placeholder and border is shown or not
368
pref("browser.display.show_loading_image_placeholder", false);
369
// min font device pixel size at which to turn on high quality
370
pref("browser.display.auto_quality_min_font_size", 20);
371
pref("browser.anchor_color", "#0000EE");
372
pref("browser.active_color", "#EE0000");
373
pref("browser.visited_color", "#551A8B");
374
pref("browser.underline_anchors", true);
375
pref("browser.enable_automatic_image_resizing", false);
376
pref("browser.enable_click_image_resizing", true);
377
379
pref("browser.send_pings", false);
380
pref("browser.send_pings.max_per_link", 1); // limit the number of pings that are sent per link click
381
pref("browser.send_pings.require_same_host", false); // only send pings to the same host if this is true
382
383
pref("browser.display.use_focus_colors", false);
384
pref("browser.display.focus_background_color", "#117722");
385
pref("browser.display.focus_text_color", "#ffffff");
386
pref("browser.display.focus_ring_width", 1);
387
pref("browser.display.focus_ring_on_anything", false);
388
// focus ring border style.
389
// 0 = solid border, 1 = dotted border
390
pref("browser.display.focus_ring_style", 1);
391
392
pref("browser.helperApps.neverAsk.saveToDisk", "");
393
pref("browser.helperApps.neverAsk.openFile", "");
394
pref("browser.helperApps.deleteTempFileOnExit", false);
395
396
// xxxbsmedberg: where should prefs for the toolkit go?
397
pref("browser.chrome.toolbar_tips", true);
398
// max image size for which it is placed in the tab icon for tabbrowser.
399
// if 0, no images are used for tab icons for image documents.
400
pref("browser.chrome.image_icons.max_size", 1024);
401
402
pref("browser.triple_click_selects_paragraph", true);
403
404
// Print/Preview Shrink-To-Fit won't shrink below 20% for text-ish documents.
405
pref("print.shrink-to-fit.scale-limit-percent", 20);
406
407
// Whether we should display simplify page checkbox on print preview UI
408
pref("print.use_simplify_page", false);
409
410
// Disable support for MathML
411
pref("mathml.disabled", false);
412
413
// Enable scale transform for stretchy MathML operators. See bug 414277.
414
pref("mathml.scale_stretchy_operators.enabled", true);
415
416
// Used by ChannelMediaResource to run data callbacks from HTTP channel
417
// off the main thread.
418
pref("media.omt_data_delivery.enabled", true);
419
420
// We'll throttle the download if the download rate is throttle-factor times
421
// the estimated playback rate, AND we satisfy the cache readahead_limit
422
// above. The estimated playback rate is time_duration/length_in_bytes.
423
// This means we'll only throttle the download if there's no concern that
424
// throttling would cause us to stop and buffer.
425
pref("media.throttle-factor", 2);
426
// By default, we'll throttle media download once we've reached the the
427
// readahead_limit if the download is fast. This pref toggles the "and the
428
// download is fast" check off, so that we can always throttle the download
429
// once the readaheadd limit is reached even on a slow network.
430
pref("media.throttle-regardless-of-download-rate", false);
431
432
// Master HTML5 media volume scale.
433
pref("media.volume_scale", "1.0");
434
435
// Whether we should play videos opened in a "video document", i.e. videos
436
// opened as top-level documents, as opposed to inside a media element.
437
pref("media.play-stand-alone", true);
438
439
pref("media.hardware-video-decoding.enabled", true);
440
441
#ifdef MOZ_WMF
442
pref("media.wmf.dxva.enabled", true);
443
pref("media.wmf.dxva.d3d11.enabled", true);
444
pref("media.wmf.dxva.max-videos", 8);
445
pref("media.wmf.low-latency.enabled", false);
446
pref("media.wmf.low-latency.force-disabled", false);
447
pref("media.wmf.amd.highres.enabled", true);
448
pref("media.wmf.allow-unsupported-resolutions", false);
449
pref("media.wmf.use-nv12-format", true);
450
pref("media.wmf.force.allow-p010-format", false);
451
pref("media.wmf.disable-d3d11-for-dlls", "igd11dxva64.dll: 20.19.15.4463, 20.19.15.4454, 20.19.15.4444, 20.19.15.4416, 20.19.15.4404, 20.19.15.4390, 20.19.15.4380, 20.19.15.4377, 20.19.15.4364, 20.19.15.4360, 20.19.15.4352, 20.19.15.4331, 20.19.15.4326, 20.19.15.4300; igd10iumd32.dll: 20.19.15.4444, 20.19.15.4424, 20.19.15.4409, 20.19.15.4390, 20.19.15.4380, 20.19.15.4360, 10.18.10.4358, 20.19.15.4331, 20.19.15.4312, 20.19.15.4300, 10.18.15.4281, 10.18.15.4279, 10.18.10.4276, 10.18.15.4268, 10.18.15.4256, 10.18.10.4252, 10.18.15.4248, 10.18.14.4112, 10.18.10.3958, 10.18.10.3496, 10.18.10.3431, 10.18.10.3412, 10.18.10.3355, 9.18.10.3234, 9.18.10.3071, 9.18.10.3055, 9.18.10.3006; igd10umd32.dll: 9.17.10.4229, 9.17.10.3040, 9.17.10.2884, 9.17.10.2857, 8.15.10.2274, 8.15.10.2272, 8.15.10.2246, 8.15.10.1840, 8.15.10.1808; igd10umd64.dll: 9.17.10.4229, 9.17.10.2884, 9.17.10.2857, 10.18.10.3496; isonyvideoprocessor.dll: 4.1.2247.8090, 4.1.2153.6200; tosqep.dll: 1.2.15.526, 1.1.12.201, 1.0.11.318, 1.0.11.215, 1.0.10.1224; tosqep64.dll: 1.1.12.201, 1.0.11.215; nvwgf2um.dll: 22.21.13.8253, 22.21.13.8233, 22.21.13.8205, 22.21.13.8189, 22.21.13.8178, 22.21.13.8165, 21.21.13.7892, 21.21.13.7878, 21.21.13.7866, 21.21.13.7849, 21.21.13.7654, 21.21.13.7653, 21.21.13.7633, 21.21.13.7619, 21.21.13.7563, 21.21.13.7306, 21.21.13.7290, 21.21.13.7270, 21.21.13.7254, 21.21.13.6939, 21.21.13.6926, 21.21.13.6909, 21.21.13.4201, 21.21.13.4200, 10.18.13.6881, 10.18.13.6839, 10.18.13.6510, 10.18.13.6472, 10.18.13.6143, 10.18.13.5946, 10.18.13.5923, 10.18.13.5921, 10.18.13.5891, 10.18.13.5887, 10.18.13.5582, 10.18.13.5445, 10.18.13.5382, 10.18.13.5362, 9.18.13.4788, 9.18.13.4752, 9.18.13.4725, 9.18.13.4709, 9.18.13.4195, 9.18.13.4192, 9.18.13.4144, 9.18.13.4052, 9.18.13.3788, 9.18.13.3523, 9.18.13.3235, 9.18.13.3165, 9.18.13.2723, 9.18.13.2702, 9.18.13.1422, 9.18.13.1407, 9.18.13.1106, 9.18.13.546; atidxx32.dll: 21.19.151.3, 21.19.142.257, 21.19.137.514, 21.19.137.1, 21.19.134.1, 21.19.128.7, 21.19.128.4, 20.19.0.32837, 20.19.0.32832, 8.17.10.682, 8.17.10.671, 8.17.10.661, 8.17.10.648, 8.17.10.644, 8.17.10.625, 8.17.10.605, 8.17.10.581, 8.17.10.569, 8.17.10.560, 8.17.10.545, 8.17.10.539, 8.17.10.531, 8.17.10.525, 8.17.10.520, 8.17.10.519, 8.17.10.514, 8.17.10.511, 8.17.10.494, 8.17.10.489, 8.17.10.483, 8.17.10.453, 8.17.10.451, 8.17.10.441, 8.17.10.436, 8.17.10.432, 8.17.10.425, 8.17.10.418, 8.17.10.414, 8.17.10.401, 8.17.10.395, 8.17.10.385, 8.17.10.378, 8.17.10.362, 8.17.10.355, 8.17.10.342, 8.17.10.331, 8.17.10.318, 8.17.10.310, 8.17.10.286, 8.17.10.269, 8.17.10.261, 8.17.10.247, 8.17.10.240, 8.15.10.212; atidxx64.dll: 21.19.151.3, 21.19.142.257, 21.19.137.514, 21.19.137.1, 21.19.134.1, 21.19.128.7, 21.19.128.4, 20.19.0.32832, 8.17.10.682, 8.17.10.661, 8.17.10.644, 8.17.10.625; nvumdshim.dll: 10.18.13.6822");
452
pref("media.wmf.disable-d3d9-for-dlls", "igdumd64.dll: 8.15.10.2189, 8.15.10.2119, 8.15.10.2104, 8.15.10.2102, 8.771.1.0; atiumd64.dll: 7.14.10.833, 7.14.10.867, 7.14.10.885, 7.14.10.903, 7.14.10.911, 8.14.10.768, 9.14.10.1001, 9.14.10.1017, 9.14.10.1080, 9.14.10.1128, 9.14.10.1162, 9.14.10.1171, 9.14.10.1183, 9.14.10.1197, 9.14.10.945, 9.14.10.972, 9.14.10.984, 9.14.10.996");
453
pref("media.wmf.deblacklisting-for-telemetry-in-gpu-process", true);
454
pref("media.wmf.play-stand-alone", true);
455
#endif
456
pref("media.gmp.decoder.aac", 0);
457
pref("media.gmp.decoder.h264", 0);
458
pref("media.opus.enabled", true);
459
pref("media.wave.enabled", true);
460
pref("media.webm.enabled", true);
461
462
// GMP storage version number. At startup we check the version against
463
// media.gmp.storage.version.observed, and if the versions don't match,
464
// we clear storage and set media.gmp.storage.version.observed=expected.
465
// This provides a mechanism to clear GMP storage when non-compatible
466
// changes are made.
467
pref("media.gmp.storage.version.expected", 1);
468
469
// Filter what triggers user notifications.
470
// See DecoderDoctorDocumentWatcher::ReportAnalysis for details.
471
#ifdef NIGHTLY_BUILD
472
pref("media.decoder-doctor.notifications-allowed", "MediaWMFNeeded,MediaWidevineNoWMF,MediaCannotInitializePulseAudio,MediaCannotPlayNoDecoders,MediaUnsupportedLibavcodec,MediaDecodeError");
473
#else
474
pref("media.decoder-doctor.notifications-allowed", "MediaWMFNeeded,MediaWidevineNoWMF,MediaCannotInitializePulseAudio,MediaCannotPlayNoDecoders,MediaUnsupportedLibavcodec");
475
#endif
476
pref("media.decoder-doctor.decode-errors-allowed", "");
477
pref("media.decoder-doctor.decode-warnings-allowed", "");
478
// Whether we report partial failures.
479
pref("media.decoder-doctor.verbose", false);
480
// URL to report decode issues
481
pref("media.decoder-doctor.new-issue-endpoint", "https://webcompat.com/issues/new");
482
483
pref("media.videocontrols.picture-in-picture.enabled", false);
484
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", false);
485
pref("media.videocontrols.picture-in-picture.video-toggle.flyout-enabled", false);
486
pref("media.videocontrols.picture-in-picture.video-toggle.flyout-wait-ms", 5000);
487
pref("media.videocontrols.picture-in-picture.video-toggle.always-show", false);
488
489
#ifdef MOZ_WEBRTC
490
pref("media.navigator.video.enabled", true);
491
pref("media.navigator.video.default_fps",30);
492
pref("media.navigator.video.use_remb", true);
493
pref("media.navigator.video.use_tmmbr", false);
494
pref("media.navigator.audio.use_fec", true);
495
pref("media.navigator.video.red_ulpfec_enabled", false);
496
497
#ifdef NIGHTLY_BUILD
498
pref("media.peerconnection.sdp.rust.enabled", true);
499
pref("media.peerconnection.sdp.rust.compare", true);
500
#else
501
pref("media.peerconnection.sdp.rust.enabled", false);
502
pref("media.peerconnection.sdp.rust.compare", false);
503
#endif
504
505
pref("media.webrtc.debug.trace_mask", 0);
506
pref("media.webrtc.debug.multi_log", false);
507
pref("media.webrtc.debug.log_file", "");
508
pref("media.webrtc.debug.aec_dump_max_size", 4194304); // 4MB
509
510
pref("media.navigator.video.default_width",0); // adaptive default
511
pref("media.navigator.video.default_height",0); // adaptive default
512
pref("media.peerconnection.video.enabled", true);
513
pref("media.navigator.video.max_fs", 12288); // Enough for 2048x1536
514
pref("media.navigator.video.max_fr", 60);
515
pref("media.navigator.video.h264.level", 31); // 0x42E01f - level 3.1
516
pref("media.navigator.video.h264.max_br", 0);
517
pref("media.navigator.video.h264.max_mbps", 0);
518
#if defined(NIGHTLY_BUILD) && !defined(ANDROID)
519
pref("media.navigator.mediadatadecoder_vpx_enabled", true);
520
#else
521
pref("media.navigator.mediadatadecoder_vpx_enabled", false);
522
#endif
523
#if defined(ANDROID)
524
pref("media.navigator.mediadatadecoder_h264_enabled", false); // bug 1509316
525
#elif defined(_ARM64_) && defined(XP_WIN)
526
pref("media.navigator.mediadatadecoder_h264_enabled", false);
527
#else
528
pref("media.navigator.mediadatadecoder_h264_enabled", true);
529
#endif
530
pref("media.peerconnection.video.vp9_enabled", true);
531
pref("media.peerconnection.video.vp9_preferred", false);
532
pref("media.getusermedia.browser.enabled", false);
533
pref("media.getusermedia.channels", 0);
534
#if defined(ANDROID)
535
pref("media.getusermedia.camera.off_while_disabled.enabled", false);
536
pref("media.getusermedia.microphone.off_while_disabled.enabled", false);
537
#else
538
pref("media.getusermedia.camera.off_while_disabled.enabled", true);
539
pref("media.getusermedia.microphone.off_while_disabled.enabled", true);
540
#endif
541
pref("media.getusermedia.camera.off_while_disabled.delay_ms", 3000);
542
pref("media.getusermedia.microphone.off_while_disabled.delay_ms", 3000);
543
// Desktop is typically VGA capture or more; and qm_select will not drop resolution
544
// below 1/2 in each dimension (or so), so QVGA (320x200) is the lowest here usually.
545
pref("media.peerconnection.video.min_bitrate", 0);
546
pref("media.peerconnection.video.start_bitrate", 0);
547
pref("media.peerconnection.video.max_bitrate", 0);
548
pref("media.peerconnection.video.min_bitrate_estimate", 0);
549
pref("media.peerconnection.video.denoising", false);
550
pref("media.navigator.audio.fake_frequency", 1000);
551
pref("media.navigator.permission.disabled", false);
552
pref("media.navigator.streams.fake", false);
553
pref("media.peerconnection.simulcast", true);
554
pref("media.peerconnection.default_iceservers", "[]");
555
pref("media.peerconnection.ice.loopback", false); // Set only for testing in offline environments.
556
pref("media.peerconnection.ice.tcp", true);
557
pref("media.peerconnection.ice.tcp_so_sock_count", 0); // Disable SO gathering
558
pref("media.peerconnection.ice.link_local", false); // Set only for testing IPV6 in networks that don't assign IPV6 addresses
559
pref("media.peerconnection.ice.force_interface", ""); // Limit to only a single interface
560
pref("media.peerconnection.ice.relay_only", false); // Limit candidates to TURN
561
pref("media.peerconnection.use_document_iceservers", true);
562
563
pref("media.peerconnection.identity.timeout", 10000);
564
pref("media.peerconnection.ice.stun_client_maximum_transmits", 7);
565
pref("media.peerconnection.ice.trickle_grace_period", 5000);
566
pref("media.peerconnection.ice.no_host", false);
567
pref("media.peerconnection.ice.default_address_only", false);
568
pref("media.peerconnection.ice.proxy_only_if_behind_proxy", false);
569
pref("media.peerconnection.ice.proxy_only", false);
570
pref("media.peerconnection.turn.disable", false);
571
572
// These values (aec, agc, and noise) are from:
573
// media/webrtc/trunk/webrtc/modules/audio_processing/include/audio_processing.h
574
#if defined(MOZ_WEBRTC_HARDWARE_AEC_NS)
575
pref("media.getusermedia.aec_enabled", false);
576
pref("media.getusermedia.noise_enabled", false);
577
#else
578
pref("media.getusermedia.aec_enabled", true);
579
pref("media.getusermedia.noise_enabled", true);
580
#endif
581
pref("media.getusermedia.use_aec_mobile", false);
582
pref("media.getusermedia.aec", 1); // kModerateSuppression
583
pref("media.getusermedia.aec_extended_filter", true);
584
pref("media.getusermedia.noise", 1); // kModerate
585
pref("media.getusermedia.agc_enabled", true);
586
pref("media.getusermedia.agc", 1); // kAdaptiveDigital
587
// full_duplex: enable cubeb full-duplex capture/playback
588
pref("media.navigator.audio.full_duplex", true);
589
#endif // MOZ_WEBRTC
590
591
#if !defined(ANDROID)
592
pref("media.getusermedia.screensharing.enabled", true);
593
#endif
594
595
pref("media.getusermedia.audiocapture.enabled", false);
596
597
// WebVTT pseudo element and class support.
598
pref("media.webvtt.pseudo.enabled", true);
599
600
// WebVTT debug logging.
601
pref("media.webvtt.debug.logging", false);
602
603
pref("media.benchmark.vp9.threshold", 150);
604
pref("media.benchmark.frames", 300);
605
pref("media.benchmark.timeout", 1000);
606
607
pref("media.media-capabilities.enabled", true);
608
pref("media.media-capabilities.screen.enabled", false);
609
610
#ifdef MOZ_WEBM_ENCODER
611
pref("media.encoder.webm.enabled", true);
612
#endif
613
614
// Whether to allow recording of AudioNodes with MediaRecorder
615
pref("media.recorder.audio_node.enabled", false);
616
617
// Whether MediaRecorder's video encoder should allow dropping frames in order
618
// to keep up under load. Useful for tests but beware of memory consumption!
619
pref("media.recorder.video.frame_drops", true);
620
621
// Whether to autostart a media element with an |autoplay| attribute.
622
// ALLOWED=0, BLOCKED=1, defined in dom/media/Autoplay.idl
623
pref("media.autoplay.default", 0);
624
625
// By default, don't block WebAudio from playing automatically.
626
pref("media.autoplay.block-webaudio", false);
627
628
// By default, don't block the media from extension background script.
629
pref("media.autoplay.allow-extension-background-pages", true);
630
631
// If "media.autoplay.default" is not ALLOWED, and this pref is true,
632
// then audible media would only be allowed to autoplay after website has
633
// been activated by specific user gestures, but non-audible
634
// media won't be restricted.
635
#ifdef NIGHTLY_BUILD
636
pref("media.autoplay.enabled.user-gestures-needed", false);
637
#endif
638
639
// The default number of decoded video frames that are enqueued in
640
// MediaDecoderReader's mVideoQueue.
641
pref("media.video-queue.default-size", 10);
642
643
// The maximum number of queued frames to send to the compositor.
644
// By default, send all of them.
645
pref("media.video-queue.send-to-compositor-size", 9999);
646
647
// Log level for cubeb, the audio input/output system. Valid values are
648
// "verbose", "normal" and "" (log disabled).
649
pref("media.cubeb.logging_level", "");
650
651
// Cubeb sandbox (remoting) control
652
#if defined(XP_LINUX) && !defined(MOZ_WIDGET_ANDROID)
653
pref("media.cubeb.sandbox", true);
654
pref("media.audioipc.pool_size", 1);
655
// 64 * 4 kB stack per pool thread.
656
pref("media.audioipc.stack_size", 262144);
657
#else
658
pref("media.cubeb.sandbox", false);
659
#endif
660
661
// GraphRunner (fixed MediaStreamGraph thread) control
662
pref("media.audiograph.single_thread.enabled", false);
663
664
#ifdef MOZ_AV1
665
#if defined(XP_WIN) && !defined(_ARM64_)
666
pref("media.av1.enabled", true);
667
pref("media.av1.use-dav1d", true);
668
#elif defined(XP_MACOSX)
669
pref("media.av1.enabled", true);
670
pref("media.av1.use-dav1d", true);
671
#elif defined(XP_UNIX) && !defined(MOZ_WIDGET_ANDROID)
672
pref("media.av1.enabled", true);
673
pref("media.av1.use-dav1d", true);
674
#else
675
pref("media.av1.enabled", false);
676
pref("media.av1.use-dav1d", false);
677
#endif
678
#endif
679
680
// Whether to enable arbitrary layer geometry for OpenGL compositor
681
pref("layers.geometry.opengl.enabled", true);
682
683
// Whether to enable arbitrary layer geometry for Basic compositor
684
pref("layers.geometry.basic.enabled", true);
685
686
// Whether to enable arbitrary layer geometry for DirectX compositor
687
pref("layers.geometry.d3d11.enabled", true);
688
689
// APZ preferences. For documentation/details on what these prefs do, check
690
// gfx/layers/apz/src/AsyncPanZoomController.cpp.
691
pref("apz.allow_double_tap_zooming", true);
692
pref("apz.allow_immediate_handoff", false);
693
pref("apz.allow_zooming", false);
694
pref("apz.android.chrome_fling_physics.enabled", true);
695
pref("apz.android.chrome_fling_physics.friction", "0.015");
696
pref("apz.android.chrome_fling_physics.inflexion", "0.35");
697
pref("apz.android.chrome_fling_physics.stop_threshold", "0.1");
698
pref("apz.autoscroll.enabled", true);
699
700
// Whether to lock touch scrolling to one axis at a time
701
// 0 = FREE (No locking at all)
702
// 1 = STANDARD (Once locked, remain locked until scrolling ends)
703
// 2 = STICKY (Allow lock to be broken, with hysteresis)
704
pref("apz.axis_lock.mode", 0);
705
pref("apz.axis_lock.lock_angle", "0.5235987"); // PI / 6 (30 degrees)
706
pref("apz.axis_lock.breakout_threshold", "0.03125"); // 1/32 inches
707
pref("apz.axis_lock.breakout_angle", "0.3926991"); // PI / 8 (22.5 degrees)
708
pref("apz.axis_lock.direct_pan_angle", "1.047197"); // PI / 3 (60 degrees)
709
pref("apz.content_response_timeout", 400);
710
pref("apz.drag.enabled", true);
711
pref("apz.drag.initial.enabled", true);
712
pref("apz.drag.touch.enabled", true);
713
pref("apz.danger_zone_x", 50);
714
pref("apz.danger_zone_y", 100);
715
pref("apz.disable_for_scroll_linked_effects", false);
716
pref("apz.displayport_expiry_ms", 15000);
717
pref("apz.enlarge_displayport_when_clipped", false);
718
pref("apz.fixed-margin-override.enabled", false); // test only
719
pref("apz.fixed-margin-override.bottom", 0); // test only
720
pref("apz.fixed-margin-override.top", 0); // test only
721
pref("apz.fling_accel_base_mult", "1.0");
722
pref("apz.fling_accel_interval_ms", 500);
723
pref("apz.fling_accel_min_velocity", "1.5");
724
pref("apz.fling_accel_supplemental_mult", "1.0");
725
pref("apz.fling_curve_threshold_inches_per_ms", "-1.0");
726
pref("apz.fling_friction", "0.002");
727
pref("apz.fling_min_velocity_threshold", "0.5");
728
pref("apz.fling_stop_on_tap_threshold", "0.05");
729
pref("apz.fling_stopped_threshold", "0.01");
730
pref("apz.frame_delay.enabled", true);
731
#if !defined(MOZ_WIDGET_ANDROID)
732
pref("apz.keyboard.passive-listeners", true);
733
#else
734
pref("apz.keyboard.passive-listeners", false);
735
#endif
736
pref("apz.max_tap_time", 300);
737
pref("apz.max_velocity_inches_per_ms", "-1.0");
738
pref("apz.min_skate_speed", "1.0");
739
pref("apz.minimap.enabled", false);
740
pref("apz.one_touch_pinch.enabled", true);
741
pref("apz.overscroll.enabled", false);
742
pref("apz.overscroll.min_pan_distance_ratio", "1.0");
743
pref("apz.overscroll.stop_distance_threshold", "5.0");
744
pref("apz.overscroll.stop_velocity_threshold", "0.01");
745
pref("apz.overscroll.stretch_factor", "0.35");
746
pref("apz.paint_skipping.enabled", true);
747
// Fetch displayport updates early from the message queue
748
pref("apz.peek_messages.enabled", true);
749
pref("apz.pinch_lock.mode", 1);
750
pref("apz.pinch_lock.scoll_lock_threshold", "0.03125"); // 1/32 inches
751
pref("apz.pinch_lock.span_breakout_threshold", "0.03125"); // 1/32 inches
752
pref("apz.pinch_lock.span_lock_threshold", "0.03125"); // 1/32 inches
753
pref("apz.popups.enabled", false);
754
pref("apz.relative-update.enabled", true);
755
756
// Whether to print the APZC tree for debugging
757
pref("apz.printtree", false);
758
759
#ifdef NIGHTLY_BUILD
760
pref("apz.record_checkerboarding", true);
761
#else
762
pref("apz.record_checkerboarding", false);
763
#endif
764
pref("apz.second_tap_tolerance", "0.5");
765
pref("apz.test.logging_enabled", false);
766
pref("apz.touch_start_tolerance", "0.1");
767
pref("apz.touch_move_tolerance", "0.1");
768
pref("apz.velocity_bias", "0.0");
769
pref("apz.velocity_relevance_time_ms", 150);
770
pref("apz.x_skate_highmem_adjust", "0.0");
771
pref("apz.y_skate_highmem_adjust", "0.0");
772
pref("apz.x_skate_size_multiplier", "1.25");
773
pref("apz.y_skate_size_multiplier", "3.5");
774
pref("apz.x_stationary_size_multiplier", "1.5");
775
pref("apz.y_stationary_size_multiplier", "3.5");
776
pref("apz.zoom_animation_duration_ms", 250);
777
pref("apz.scale_repaint_delay_ms", 500);
778
779
#if defined(MOZ_WIDGET_ANDROID)
780
// Mobile prefs
781
pref("apz.allow_zooming", true);
782
pref("apz.enlarge_displayport_when_clipped", true);
783
pref("apz.y_skate_size_multiplier", "1.5");
784
pref("apz.y_stationary_size_multiplier", "1.5");
785
#endif
786
787
#ifdef XP_MACOSX
788
// Whether to run in native HiDPI mode on machines with "Retina"/HiDPI
789
// display.
790
// <= 0 : hidpi mode disabled, display will just use pixel-based upscaling.
791
// == 1 : hidpi supported if all screens share the same backingScaleFactor.
792
// >= 2 : hidpi supported even with mixed backingScaleFactors (somewhat
793
// broken).
794
pref("gfx.hidpi.enabled", 2);
795
#endif
796
797
// Default to containerless scrolling
798
pref("layout.scroll.root-frame-containers", false);
799
800
pref("layout.scrollbars.always-layerize-track", false);
801
802
// Whether to enable LayerScope tool and default listening port
803
pref("gfx.layerscope.enabled", false);
804
pref("gfx.layerscope.port", 23456);
805
806
// Log severe performance warnings to the error console and profiles.
807
// This should be use to quickly find which slow paths are used by test cases.
808
pref("gfx.perf-warnings.enabled", false);
809
810
// 0 = Off, 1 = Full, 2 = Tagged Images Only.
811
// See eCMSMode in gfx/thebes/gfxPlatform.h
812
pref("gfx.color_management.mode", 2);
813
pref("gfx.color_management.display_profile", "");
814
pref("gfx.color_management.rendering_intent", 0);
815
pref("gfx.color_management.enablev4", false);
816
817
pref("gfx.downloadable_fonts.enabled", true);
818
pref("gfx.downloadable_fonts.fallback_delay", 3000);
819
pref("gfx.downloadable_fonts.fallback_delay_short", 100);
820
821
// disable downloadable font cache so that behavior is consistently
822
// the uncached load behavior across pages (useful for testing reflow problems)
823
pref("gfx.downloadable_fonts.disable_cache", false);
824
825
// Whether OTS validation should be applied to OpenType Layout (OTL) tables
826
#ifdef RELEASE_OR_BETA
827
pref("gfx.downloadable_fonts.otl_validation", false);
828
#else
829
pref("gfx.downloadable_fonts.otl_validation", true);
830
#endif
831
832
// Whether to preserve color bitmap tables in fonts (bypassing OTS).
833
// Currently these are supported only on platforms where we use Freetype
834
// to render fonts (Linux/Gtk and Android).
835
pref("gfx.downloadable_fonts.keep_color_bitmaps", false);
836
837
// Whether to validate OpenType variation tables in fonts
838
pref("gfx.downloadable_fonts.validate_variation_tables", true);
839
840
#ifdef ANDROID
841
pref("gfx.bundled_fonts.enabled", true);
842
pref("gfx.bundled_fonts.force-enabled", false);
843
#endif
844
845
// Do we fire a notification about missing fonts, so the front-end can decide
846
// whether to try and do something about it (e.g. download additional fonts)?
847
pref("gfx.missing_fonts.notify", false);
848
849
// prefs controlling the font (name/cmap) loader that runs shortly after startup
850
#ifdef XP_WIN
851
pref("gfx.font_loader.delay", 120000); // 2 minutes after startup
852
pref("gfx.font_loader.interval", 1000); // every 1 second until complete
853
#else
854
pref("gfx.font_loader.delay", 8000); // 8 secs after startup
855
pref("gfx.font_loader.interval", 50); // run every 50 ms
856
#endif
857
858
// whether to always search all font cmaps during system font fallback
859
pref("gfx.font_rendering.fallback.always_use_cmaps", false);
860
861
// cache shaped word results
862
pref("gfx.font_rendering.wordcache.charlimit", 32);
863
864
// cache shaped word results
865
pref("gfx.font_rendering.wordcache.maxentries", 10000);
866
867
pref("gfx.font_rendering.graphite.enabled", true);
868
869
#ifdef XP_MACOSX
870
// Set to true to revert from HarfBuzz AAT shaping to the old Core Text
871
// backend.
872
pref("gfx.font_rendering.coretext.enabled", false);
873
#endif
874
875
#ifdef XP_WIN
876
pref("gfx.font_rendering.directwrite.use_gdi_table_loading", true);
877
#endif
878
879
// Disable antialiasing of Ahem, for use in tests
880
pref("gfx.font_rendering.ahem_antialias_none", false);
881
882
#if defined(XP_WIN)
883
// comma separated list of backends to use in order of preference
884
// e.g., pref("gfx.canvas.azure.backends", "direct2d,skia");
885
pref("gfx.canvas.azure.backends", "direct2d1.1,skia");
886
pref("gfx.content.azure.backends", "direct2d1.1,skia");
887
pref("gfx.canvas.remote", false);
888
#elif defined(XP_MACOSX)
889
pref("gfx.content.azure.backends", "skia");
890
pref("gfx.canvas.azure.backends", "skia");
891
#else
892
pref("gfx.canvas.azure.backends", "skia");
893
pref("gfx.content.azure.backends", "skia");
894
#endif
895
896
pref("gfx.draw-color-bars", false);
897
898
pref("gfx.logging.painted-pixel-count.enabled", false);
899
900
pref("gfx.ycbcr.accurate-conversion", false);
901
902
#ifdef XP_WIN
903
pref("gfx.webrender.force-angle", true);
904
pref("gfx.webrender.flip-sequential", false);
905
pref("gfx.webrender.dcomp-win.enabled", true);
906
pref("gfx.webrender.triple-buffering.enabled", true);
907
#endif
908
909
#if defined(XP_WIN) || defined(MOZ_WIDGET_ANDROID)
910
pref("gfx.webrender.program-binary-disk", true);
911
#endif
912
913
#ifdef XP_MACOSX
914
pref("gfx.compositor.glcontext.opaque", false);
915
pref("gfx.core-animation.enabled", false);
916
#endif
917
918
pref("gfx.webrender.highlight-painted-layers", false);
919
pref("gfx.webrender.blob-images", true);
920
pref("gfx.webrender.blob.paint-flashing", false);
921
922
// WebRender debugging utilities.
923
pref("gfx.webrender.debug.texture-cache", false);
924
pref("gfx.webrender.debug.texture-cache.clear-evicted", true);
925
pref("gfx.webrender.debug.render-targets", false);
926
pref("gfx.webrender.debug.gpu-cache", false);
927
pref("gfx.webrender.debug.alpha-primitives", false);
928
pref("gfx.webrender.debug.profiler", false);
929
pref("gfx.webrender.debug.gpu-time-queries", false);
930
pref("gfx.webrender.debug.gpu-sample-queries", false);
931
pref("gfx.webrender.debug.disable-batching", false);
932
pref("gfx.webrender.debug.epochs", false);
933
pref("gfx.webrender.debug.compact-profiler", false);
934
pref("gfx.webrender.debug.echo-driver-messages", false);
935
pref("gfx.webrender.debug.new-frame-indicator", false);
936
pref("gfx.webrender.debug.new-scene-indicator", false);
937
pref("gfx.webrender.debug.show-overdraw", false);
938
pref("gfx.webrender.debug.slow-frame-indicator", false);
939
pref("gfx.webrender.debug.picture-caching", false);
940
pref("gfx.webrender.debug.primitives", false);
941
pref("gfx.webrender.debug.small-screen", false);
942
pref("gfx.webrender.dl.dump-parent", false);
943
pref("gfx.webrender.dl.dump-content", false);
944
pref("gfx.webrender.picture-caching", true);
945
#ifdef NIGHTLY_BUILD
946
// Keep this pref hidden on non-nightly builds to avoid people accidentally
947
// turning it on.
948
pref("gfx.webrender.start-debug-server", false);
949
#endif
950
951
pref("accessibility.browsewithcaret", false);
952
pref("accessibility.warn_on_browsewithcaret", true);
953
954
pref("accessibility.browsewithcaret_shortcut.enabled", true);
955
956
#ifndef XP_MACOSX
957
// Tab focus model bit field:
958
// 1 focuses text controls, 2 focuses other form elements, 4 adds links.
959
// Most users will want 1, 3, or 7.
960
// On OS X, we use Full Keyboard Access system preference,
961
// unless accessibility.tabfocus is set by the user.
962
pref("accessibility.tabfocus", 7);
963
pref("accessibility.tabfocus_applies_to_xul", false);
964
#else
965
// Only on mac tabfocus is expected to handle UI widgets as well as web
966
// content.
967
pref("accessibility.tabfocus_applies_to_xul", true);
968
#endif
969
970
// We follow the "Click in the scrollbar to:" system preference on OS X and
971
// "gtk-primary-button-warps-slider" property with GTK (since 2.24 / 3.6),
972
// unless this preference is explicitly set.
973
#if !defined(XP_MACOSX) && !defined(MOZ_WIDGET_GTK)
974
pref("ui.scrollToClick", 0);
975
#endif
976
977
// We want the ability to forcibly disable platform a11y, because
978
// some non-a11y-related components attempt to bring it up. See bug
979
// 538530 for details about Windows; we have a pref here that allows it
980
// to be disabled for performance and testing resons.
981
// See bug 761589 for the crossplatform aspect.
982
//
983
// This pref is checked only once, and the browser needs a restart to
984
// pick up any changes.
985
//
986
// Values are -1 always on. 1 always off, 0 is auto as some platform perform
987
// further checks.
988
pref("accessibility.force_disabled", 0);
989
990
#ifdef XP_WIN
991
// Some accessibility tools poke at windows in the plugin process during
992
// setup which can cause hangs. To hack around this set
993
// accessibility.delay_plugins to true, you can also try increasing
994
// accessibility.delay_plugin_time if your machine is slow and you still
995
// experience hangs. See bug 781791.
996
pref("accessibility.delay_plugins", false);
997
pref("accessibility.delay_plugin_time", 10000);
998
999
// The COM handler used for Windows e10s performance and live regions.
1000
pref("accessibility.handler.enabled", true);
1001
#endif
1002
1003
pref("focusmanager.testmode", false);
1004
1005
pref("accessibility.usetexttospeech", "");
1006
pref("accessibility.accesskeycausesactivation", true);
1007
pref("accessibility.mouse_focuses_formcontrol", false);
1008
1009
// Type Ahead Find
1010
pref("accessibility.typeaheadfind", true);
1011
// Enable FAYT by pressing / or "
1012
pref("accessibility.typeaheadfind.manual", true);
1013
pref("accessibility.typeaheadfind.autostart", true);
1014
// casesensitive: controls the find bar's case-sensitivity
1015
// 0 - "never" (case-insensitive)
1016
// 1 - "always" (case-sensitive)
1017
// other - "auto" (case-sensitive for mixed-case input, insensitive otherwise)
1018
pref("accessibility.typeaheadfind.casesensitive", 0);
1019
pref("accessibility.typeaheadfind.linksonly", true);
1020
pref("accessibility.typeaheadfind.startlinksonly", false);
1021
// timeout: controls the delay in milliseconds after which the quick-find dialog will close
1022
// if no further keystrokes are pressed
1023
// set to a zero or negative value to keep dialog open until it's manually closed
1024
pref("accessibility.typeaheadfind.timeout", 4000);
1025
pref("accessibility.typeaheadfind.soundURL", "beep");
1026
pref("accessibility.typeaheadfind.enablesound", true);
1027
#ifdef XP_MACOSX
1028
pref("accessibility.typeaheadfind.prefillwithselection", false);
1029
#else
1030
pref("accessibility.typeaheadfind.prefillwithselection", true);
1031
#endif
1032
pref("accessibility.typeaheadfind.matchesCountLimit", 1000);
1033
pref("findbar.highlightAll", false);
1034
pref("findbar.modalHighlight", false);
1035
pref("findbar.entireword", false);
1036
pref("findbar.iteratorTimeout", 100);
1037
1038
// use Mac OS X Appearance panel text smoothing setting when rendering text, disabled by default
1039
pref("gfx.use_text_smoothing_setting", false);
1040
1041
// Number of characters to consider emphasizing for rich autocomplete results
1042
pref("toolkit.autocomplete.richBoundaryCutoff", 200);
1043
1044
// Variable controlling logging for osfile.
1045
pref("toolkit.osfile.log", false);
1046
1047
pref("toolkit.cosmeticAnimations.enabled", true);
1048
1049
pref("toolkit.scrollbox.smoothScroll", true);
1050
pref("toolkit.scrollbox.scrollIncrement", 20);
1051
pref("toolkit.scrollbox.verticalScrollDistance", 3);
1052
pref("toolkit.scrollbox.horizontalScrollDistance", 5);
1053
pref("toolkit.scrollbox.clickToScroll.scrollDelay", 150);
1054
1055
pref("toolkit.tabbox.switchByScrolling", false);
1056
1057
// Telemetry settings.
1058
// Server to submit telemetry pings to.
1059
pref("toolkit.telemetry.server", "https://incoming.telemetry.mozilla.org");
1060
// Telemetry server owner. Please change if you set toolkit.telemetry.server to a different server
1061
pref("toolkit.telemetry.server_owner", "Mozilla");
1062
// Determines whether full SQL strings are returned when they might contain sensitive info
1063
// i.e. dynamically constructed SQL strings or SQL executed by addons against addon DBs
1064
pref("toolkit.telemetry.debugSlowSql", false);
1065
// Whether to use the unified telemetry behavior, requires a restart.
1066
pref("toolkit.telemetry.unified", true);
1067
// AsyncShutdown delay before crashing in case of shutdown freeze
1068
#ifndef MOZ_ASAN
1069
pref("toolkit.asyncshutdown.crash_timeout", 60000); // 1 minute
1070
#else
1071
// MOZ_ASAN builds can be considerably slower. Extending the grace period
1072
// of both asyncshutdown and the terminator.
1073
pref("toolkit.asyncshutdown.crash_timeout", 180000); // 3 minutes
1074
#endif // MOZ_ASAN
1075
// Extra logging for AsyncShutdown barriers and phases
1076
pref("toolkit.asyncshutdown.log", false);
1077
1078
pref("toolkit.content-background-hang-monitor.disabled", false);
1079
1080
// Enable JS dump() function.
1081
// IMPORTANT: These prefs must be here even though they're also defined in
1082
// StaticPrefList.yaml. They are required because MOZILLA_OFFICIAL is false in
1083
// local full builds but true in artifact builds. Without these definitions
1084
// here, dumping is disabled in artifact builds (see Bug 1490412).
1085
#ifdef MOZILLA_OFFICIAL
1086
pref("browser.dom.window.dump.enabled", false, sticky);
1087
pref("devtools.console.stdout.chrome", false, sticky);
1088
#else
1089
pref("browser.dom.window.dump.enabled", true, sticky);
1090
pref("devtools.console.stdout.chrome", true, sticky);
1091
#endif
1092
1093
pref("devtools.console.stdout.content", false, sticky);
1094
1095
// Controls whether EventEmitter module throws dump message on each emit
1096
pref("toolkit.dump.emit", false);
1097
1098
// Enable recording/replaying executions.
1099
#if defined(XP_MACOSX) && defined(NIGHTLY_BUILD)
1100
pref("devtools.recordreplay.enabled", true);
1101
pref("devtools.recordreplay.enableRewinding", true);
1102
#endif
1103
1104
pref("devtools.recordreplay.mvp.enabled", false);
1105
pref("devtools.recordreplay.allowRepaintFailures", true);
1106
pref("devtools.recordreplay.includeSystemScripts", false);
1107
1108
// view source
1109
pref("view_source.syntax_highlight", true);
1110
pref("view_source.wrap_long_lines", false);
1111
pref("view_source.editor.path", "");
1112
// allows to add further arguments to the editor; use the %LINE% placeholder
1113
// for jumping to a specific line (e.g. "/line:%LINE%" or "--goto %LINE%")
1114
pref("view_source.editor.args", "");
1115
1116
// whether or not to draw images while dragging
1117
pref("nglayout.enable_drag_images", true);
1118
1119
// enable/disable paint flashing --- useful for debugging
1120
// the first one applies to everything, the second one only to chrome
1121
pref("nglayout.debug.paint_flashing", false);
1122
pref("nglayout.debug.paint_flashing_chrome", false);
1123
1124
// enable/disable widget update area flashing --- only supported with
1125
// BasicLayers (other layer managers always update the entire widget area)
1126
pref("nglayout.debug.widget_update_flashing", false);
1127
1128
// Whether frame visibility tracking is enabled globally.
1129
pref("layout.framevisibility.enabled", true);
1130
1131
pref("layout.framevisibility.numscrollportwidths", 0);
1132
pref("layout.framevisibility.numscrollportheights", 1);
1133
1134
// URI fixup prefs
1135
pref("browser.fixup.alternate.enabled", true);
1136
pref("browser.fixup.alternate.prefix", "www.");
1137
pref("browser.fixup.alternate.suffix", ".com");
1138
1139
// Print header customization
1140
// Use the following codes:
1141
// &T - Title
1142
// &U - Document URL
1143
// &D - Date/Time
1144
// &P - Page Number
1145
// &PT - Page Number "of" Page total
1146
// Set each header to a string containing zero or one of these codes
1147
// and the code will be replaced in that string by the corresponding data
1148
pref("print.print_headerleft", "&T");
1149
pref("print.print_headercenter", "");
1150
pref("print.print_headerright", "&U");
1151
pref("print.print_footerleft", "&PT");
1152
pref("print.print_footercenter", "");
1153
pref("print.print_footerright", "&D");
1154
pref("print.show_print_progress", true);
1155
1156
// xxxbsmedberg: more toolkit prefs
1157
1158
// When this is set to false each window has its own PrintSettings
1159
// and a change in one window does not affect the others
1160
pref("print.use_global_printsettings", true);
1161
1162
// Save the Printings after each print job
1163
pref("print.save_print_settings", true);
1164
1165
// Enables you to specify the amount of the paper that is to be treated
1166
// as unwriteable. The print_edge_XXX and print_margin_XXX preferences
1167
// are treated as offsets that are added to this pref.
1168
// Default is "-1", which means "use the system default". (If there is
1169
// no system default, then the -1 is treated as if it were 0.)
1170
// This is used by both Printing and Print Preview.
1171
// Units are in 1/100ths of an inch.
1172
pref("print.print_unwriteable_margin_top", -1);
1173
pref("print.print_unwriteable_margin_left", -1);
1174
pref("print.print_unwriteable_margin_right", -1);
1175
pref("print.print_unwriteable_margin_bottom", -1);
1176
1177
// Enables you to specify the gap from the edge of the paper's
1178
// unwriteable area to the margin.
1179
// This is used by both Printing and Print Preview
1180
// Units are in 1/100ths of an inch.
1181
pref("print.print_edge_top", 0);
1182
pref("print.print_edge_left", 0);
1183
pref("print.print_edge_right", 0);
1184
pref("print.print_edge_bottom", 0);
1185
1186
// Print via the parent process. This is only used when e10s is enabled.
1187
#if !defined(MOZ_WIDGET_ANDROID)
1188
pref("print.print_via_parent", true);
1189
#else
1190
pref("print.print_via_parent", false);
1191
#endif
1192
1193
// Variation fonts can't always be embedded in certain output formats
1194
// such as PDF. To work around this, draw the variation fonts using
1195
// paths instead of using font embedding.
1196
pref("print.font-variations-as-paths", true);
1197
1198
// Pref used by the spellchecker extension to control the
1199
// maximum number of misspelled words that will be underlined
1200
// in a document.
1201
pref("extensions.spellcheck.inline.max-misspellings", 500);
1202
1203
// Whether inserting <div> when typing Enter in a block element which can
1204
// contain <div>. If false, inserts <br> instead.
1205
pref("editor.use_div_for_default_newlines", true);
1206
1207
// Prefs specific to seamonkey composer belong in
1208
// comm-central/editor/ui/composer.js
1209
pref("editor.use_custom_colors", false);
1210
pref("editor.singleLine.pasteNewlines", 2);
1211
pref("editor.use_css", false);
1212
pref("editor.css.default_length_unit", "px");
1213
pref("editor.resizing.preserve_ratio", true);
1214
pref("editor.positioning.offset", 0);
1215
1216
// Scripts & Windows prefs
1217
pref("dom.disable_beforeunload", false);
1218
pref("dom.beforeunload_timeout_ms", 1000);
1219
pref("dom.disable_window_flip", false);
1220
pref("dom.disable_window_move_resize", false);
1221
1222
pref("dom.disable_window_open_feature.titlebar", false);
1223
pref("dom.disable_window_open_feature.close", false);
1224
pref("dom.disable_window_open_feature.toolbar", false);
1225
pref("dom.disable_window_open_feature.location", false);
1226
pref("dom.disable_window_open_feature.personalbar", false);
1227
pref("dom.disable_window_open_feature.menubar", false);
1228
pref("dom.disable_window_open_feature.resizable", true);
1229
pref("dom.disable_window_open_feature.minimizable", false);
1230
pref("dom.disable_window_open_feature.status", true);
1231
pref("dom.disable_window_showModalDialog", true);
1232
1233
pref("dom.allow_scripts_to_close_windows", false);
1234
1235
pref("dom.require_user_interaction_for_beforeunload", true);
1236
1237
pref("dom.popup_maximum", 20);
1238
pref("dom.popup_allowed_events", "change click dblclick auxclick mouseup pointerup notificationclick reset submit touchend contextmenu");
1239
1240
pref("dom.serviceWorkers.disable_open_click_delay", 1000);
1241
1242
pref("dom.storage.enabled", true);
1243
// Whether or not LSNG (Next Generation Local Storage) is enabled.
1244
// See bug 1517090 for enabling this on Nightly.
1245
// See bug 1534736 for changing it to EARLY_BETA_OR_EARLIER.
1246
// See bug 1539835 for enabling this unconditionally.
1247
pref("dom.storage.next_gen", true);
1248
pref("dom.storage.shadow_writes", true);
1249
pref("dom.storage.snapshot_prefill", 16384);
1250
pref("dom.storage.snapshot_gradual_prefill", 4096);
1251
pref("dom.storage.snapshot_reusing", true);
1252
pref("dom.storage.client_validation", true);
1253
1254
pref("dom.send_after_paint_to_content", false);
1255
1256
// Don't use new input types
1257
pref("dom.experimental_forms", false);
1258
1259
// Enable <input type=color> by default. It will be turned off for remaining
1260
// platforms which don't have a color picker implemented yet.
1261
pref("dom.forms.color", true);
1262
1263
// Support for input type=month, type=week and type=datetime-local. By default,
1264
// disabled.
1265
pref("dom.forms.datetime.others", false);
1266
1267
// Enable time picker UI. By default, disabled.
1268
pref("dom.forms.datetime.timepicker", false);
1269
1270
// Enable search in <select> dropdowns (more than 40 options)
1271
pref("dom.forms.selectSearch", false);
1272
// Allow for webpages to provide custom styling for <select>
1273
// popups. Disabled on GTK due to bug 1338283.
1274
#ifdef MOZ_WIDGET_GTK
1275
pref("dom.forms.select.customstyling", false);
1276
#else
1277
pref("dom.forms.select.customstyling", true);
1278
#endif
1279
pref("dom.select_popup_in_parent.enabled", false);
1280
1281
pref("dom.cycle_collector.incremental", true);
1282
1283
// Whether to shim a Components object on untrusted windows.
1284
#ifdef NIGHTLY_BUILD
1285
pref("dom.use_components_shim", false);
1286
#else // NIGHTLY_BUILD
1287
pref("dom.use_components_shim", true);
1288
#endif // NIGHTLY_BUILD
1289
1290
// Disable popups from plugins by default
1291
// 0 = openAllowed
1292
// 1 = openControlled
1293
// 2 = openBlocked
1294
// 3 = openAbused
1295
pref("privacy.popups.disable_from_plugins", 3);
1296
1297
// Enable Paritioned LocalStorage for a list of hosts when detected as trackers
1298
// (See nsICookieService::BEHAVIOR_REJECT_TRACKER cookie behavior)
1299
pref("privacy.restrict3rdpartystorage.partitionedHosts", "accounts.google.com/o/oauth2/");
1300
1301
// If a host is contained in this pref list, user-interaction is required
1302
// before granting the storage access permission.
1303
pref("privacy.restrict3rdpartystorage.userInteractionRequiredForHosts", "");
1304
1305
// The url decoration tokens used to for stripping document referrers based on.
1306
// A list separated by spaces. This pref isn't meant to be changed by users.
1307
pref("privacy.restrict3rdpartystorage.url_decorations", "");
1308
1309
// Excessive reporting of blocked popups can be a DOS vector,
1310
// by overloading the main process as popups get blocked and when
1311
// users try to restore all popups, which is the most visible
1312
// option in our UI at the time of writing.
1313
// We will invisibly drop any popups from a page that has already
1314
// opened more than this number of popups.
1315
pref("privacy.popups.maxReported", 100);
1316
1317
// Enable Origin Telemetry by default
1318
#ifdef NIGHTLY_BUILD
1319
pref("privacy.trackingprotection.origin_telemetry.enabled", true);
1320
#endif
1321
1322
pref("dom.event.contextmenu.enabled", true);
1323
pref("dom.event.coalesce_mouse_move", true);
1324
1325
pref("javascript.enabled", true);
1326
pref("javascript.options.strict", false);
1327
#ifdef DEBUG
1328
pref("javascript.options.strict.debug", false);
1329
#endif
1330
pref("javascript.options.blinterp", true);
1331
// Duplicated in JitOptions - ensure both match.
1332
pref("javascript.options.blinterp.threshold", 10);
1333
pref("javascript.options.baselinejit", true);
1334
// Duplicated in JitOptions - ensure both match.
1335
pref("javascript.options.baselinejit.threshold", 100);
1336
pref("javascript.options.ion", true);
1337
// Duplicated in JitOptions - ensure both match.
1338
pref("javascript.options.ion.threshold", 1000);
1339
pref("javascript.options.ion.full.threshold", 100000);
1340
// Duplicated in JitOptions - ensure both match.
1341
pref("javascript.options.ion.frequent_bailout_threshold", 10);
1342
pref("javascript.options.asmjs", true);
1343
pref("javascript.options.wasm", true);
1344
pref("javascript.options.wasm_verbose", false);
1345
pref("javascript.options.wasm_ionjit", true);
1346
pref("javascript.options.wasm_baselinejit", true);
1347
#ifdef ENABLE_WASM_CRANELIFT
1348
pref("javascript.options.wasm_cranelift", false);
1349
#endif
1350
#ifdef ENABLE_WASM_REFTYPES
1351
pref("javascript.options.wasm_gc", false);
1352
#endif
1353
pref("javascript.options.native_regexp", true);
1354
pref("javascript.options.parallel_parsing", true);
1355
#if !defined(RELEASE_OR_BETA) && !defined(ANDROID) && !defined(XP_IOS)
1356
pref("javascript.options.asyncstack", true);
1357
#else
1358
pref("javascript.options.asyncstack", false);
1359
#endif
1360
pref("javascript.options.throw_on_asmjs_validation_failure", false);
1361
pref("javascript.options.ion.offthread_compilation", true);
1362
#ifdef DEBUG
1363
pref("javascript.options.jit.full_debug_checks", false);
1364
#endif
1365
// This preference instructs the JS engine to discard the
1366
// source of any privileged JS after compilation. This saves
1367
// memory, but makes things like Function.prototype.toSource()
1368
// fail.
1369
pref("javascript.options.discardSystemSource", false);
1370
1371
// Many of the the following preferences tune the SpiderMonkey GC, if you
1372
// change the defaults here please also consider changing them in
1373
// js/src/jsgc.cpp. They're documented in js/src/jsapi.h.
1374
1375
// JSGC_MAX_BYTES
1376
// SpiderMonkey defaults to 2^32-1 bytes, but this is measured in MB so that
1377
// cannot be represented directly in order to show it in about:config.
1378
pref("javascript.options.mem.max", -1);
1379
1380
// JSGC_MIN_NURSERY_BYTES / JSGC_MAX_NURSERY_BYTES
1381
#if defined(ANDROID) || defined(XP_IOS)
1382
pref("javascript.options.mem.nursery.min_kb", 256);
1383
pref("javascript.options.mem.nursery.max_kb", 4096);
1384
#else
1385
pref("javascript.options.mem.nursery.min_kb", 256);
1386
pref("javascript.options.mem.nursery.max_kb", 16384);
1387
#endif
1388
1389
// JSGC_MODE
1390
pref("javascript.options.mem.gc_per_zone", true);
1391
pref("javascript.options.mem.gc_incremental", true);
1392
1393
// JSGC_SLICE_TIME_BUDGET_MS
1394
// Override the shell's default of unlimited slice time.
1395
pref("javascript.options.mem.gc_incremental_slice_ms", 5);
1396
1397
// JSGC_COMPACTING_ENABLED
1398
pref("javascript.options.mem.gc_compacting", true);
1399
1400
// JSGC_HIGH_FREQUENCY_TIME_LIMIT
1401
pref("javascript.options.mem.gc_high_frequency_time_limit_ms", 1000);
1402
1403
// JSGC_HIGH_FREQUENCY_LOW_LIMIT
1404
pref("javascript.options.mem.gc_high_frequency_low_limit_mb", 100);
1405
1406
// JSGC_HIGH_FREQUENCY_HIGH_LIMIT
1407
pref("javascript.options.mem.gc_high_frequency_high_limit_mb", 500);
1408
1409
// JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MAX
1410
pref("javascript.options.mem.gc_high_frequency_heap_growth_max", 300);
1411
1412
// JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MIN
1413
pref("javascript.options.mem.gc_high_frequency_heap_growth_min", 150);
1414
1415
// JSGC_LOW_FREQUENCY_HEAP_GROWTH
1416
pref("javascript.options.mem.gc_low_frequency_heap_growth", 150);
1417
1418
// JSGC_DYNAMIC_HEAP_GROWTH
1419
// Override SpiderMonkey default (false).
1420
pref("javascript.options.mem.gc_dynamic_heap_growth", true);
1421
1422
// JSGC_DYNAMIC_MARK_SLICE
1423
// Override SpiderMonkey default (false).
1424
pref("javascript.options.mem.gc_dynamic_mark_slice", true);
1425
1426
// JSGC_ALLOCATION_THRESHOLD
1427
pref("javascript.options.mem.gc_allocation_threshold_mb", 27);
1428
1429
// JSGC_NON_INCREMENTAL_FACTOR
1430
pref("javascript.options.mem.gc_non_incremental_factor", 112);
1431
1432
// JSGC_AVOID_INTERRUPT_FACTOR
1433
pref("javascript.options.mem.gc_avoid_interrupt_factor", 100);
1434
1435
// JSGC_MIN_EMPTY_CHUNK_COUNT
1436
pref("javascript.options.mem.gc_min_empty_chunk_count", 1);
1437
1438
// JSGC_MAX_EMPTY_CHUNK_COUNT
1439
pref("javascript.options.mem.gc_max_empty_chunk_count", 30);
1440
1441
pref("javascript.options.showInConsole", false);
1442
1443
pref("javascript.options.shared_memory", false);
1444
1445
pref("javascript.options.throw_on_debuggee_would_run", false);
1446
pref("javascript.options.dump_stack_on_debuggee_would_run", false);
1447
1448
// Spectre security vulnerability mitigations.
1449
#if defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
1450
pref("javascript.options.spectre.index_masking", false);
1451
pref("javascript.options.spectre.object_mitigations.barriers", false);
1452
pref("javascript.options.spectre.object_mitigations.misc", false);
1453
pref("javascript.options.spectre.string_mitigations", false);
1454
pref("javascript.options.spectre.value_masking", false);
1455
pref("javascript.options.spectre.jit_to_C++_calls", false);
1456
#else
1457
pref("javascript.options.spectre.index_masking", true);
1458
pref("javascript.options.spectre.object_mitigations.barriers", true);
1459
pref("javascript.options.spectre.object_mitigations.misc", true);
1460
pref("javascript.options.spectre.string_mitigations", true);
1461
pref("javascript.options.spectre.value_masking", true);
1462
pref("javascript.options.spectre.jit_to_C++_calls", true);
1463
#endif
1464
1465
// Streams API
1466
pref("javascript.options.streams", true);
1467
1468
// Dynamic module import.
1469
pref("javascript.options.dynamicImport", true);
1470
1471
// advanced prefs
1472
pref("advanced.mailftp", false);
1473
pref("image.animation_mode", "normal");
1474
1475
// Same-origin policy for file URIs, "false" is traditional
1476
pref("security.fileuri.strict_origin_policy", true);
1477
1478
// If this pref is true, prefs in the logging.config branch will be cleared on
1479
// startup. This is done so that setting a log-file and log-modules at runtime
1480
// doesn't persist across restarts leading to huge logfile and low disk space.
1481
pref("logging.config.clear_on_startup", true);
1482
1483
// If there is ever a security firedrill that requires
1484
// us to block certian ports global, this is the pref
1485
// to use. Is is a comma delimited list of port numbers
1486
// for example:
1487
// pref("network.security.ports.banned", "1,2,3,4,5");
1488
// prevents necko connecting to ports 1-5 unless the protocol
1489
// overrides.
1490
1491
// Allow the network changed event to get sent when a network topology or
1492
// setup change is noticed while running.
1493
pref("network.notify.changed", true);
1494
1495
// Allow network detection of IPv6 related changes (bug 1245059)
1496
#if defined(XP_WIN)
1497
pref("network.notify.IPv6", false);
1498
#else
1499
pref("network.notify.IPv6", true);
1500
#endif
1501
1502
// Transmit UDP busy-work to the LAN when anticipating low latency
1503
// network reads and on wifi to mitigate 802.11 Power Save Polling delays
1504
pref("network.tickle-wifi.enabled", false);
1505
pref("network.tickle-wifi.duration", 400);
1506
pref("network.tickle-wifi.delay", 16);
1507
1508
// Turn off interprocess security checks. Needed to run xpcshell tests.
1509
pref("network.disable.ipc.security", true);
1510
1511
// Default action for unlisted external protocol handlers
1512
pref("network.protocol-handler.external-default", true); // OK to load
1513
pref("network.protocol-handler.warn-external-default", true); // warn before load
1514
1515
// Prevent using external protocol handlers for these schemes
1516
pref("network.protocol-handler.external.hcp", false);
1517
pref("network.protocol-handler.external.vbscript", false);
1518
pref("network.protocol-handler.external.javascript", false);
1519
pref("network.protocol-handler.external.data", false);
1520
pref("network.protocol-handler.external.ie.http", false);
1521
pref("network.protocol-handler.external.iehistory", false);
1522
pref("network.protocol-handler.external.ierss", false);
1523
pref("network.protocol-handler.external.ms-help", false);
1524
pref("network.protocol-handler.external.res", false);
1525
pref("network.protocol-handler.external.shell", false);
1526
pref("network.protocol-handler.external.vnd.ms.radio", false);
1527
#ifdef XP_MACOSX
1528
pref("network.protocol-handler.external.help", false);
1529
#endif
1530
pref("network.protocol-handler.external.disk", false);
1531
pref("network.protocol-handler.external.disks", false);
1532
pref("network.protocol-handler.external.afp", false);
1533
pref("network.protocol-handler.external.moz-icon", false);
1534
1535
// Don't allow external protocol handlers for common typos
1536
pref("network.protocol-handler.external.ttp", false); // http
1537
pref("network.protocol-handler.external.htp", false); // http
1538
pref("network.protocol-handler.external.ttps", false); // https
1539
pref("network.protocol-handler.external.tps", false); // https
1540
pref("network.protocol-handler.external.ps", false); // https
1541
pref("network.protocol-handler.external.htps", false); // https
1542
pref("network.protocol-handler.external.ile", false); // file
1543
pref("network.protocol-handler.external.le", false); // file
1544
1545
// An exposed protocol handler is one that can be used in all contexts. A
1546
// non-exposed protocol handler is one that can only be used internally by the
1547
// application. For example, a non-exposed protocol would not be loaded by the
1548
// application in response to a link click or a X-remote openURL command.
1549
// Instead, it would be deferred to the system's external protocol handler.
1550
// Only internal/built-in protocol handlers can be marked as exposed.
1551
1552
// This pref controls the default settings. Per protocol settings can be used
1553
// to override this value.
1554
pref("network.protocol-handler.expose-all", true);
1555
1556
// Warning for about:networking page
1557
pref("network.warnOnAboutNetworking", false);
1558
1559
// Example: make IMAP an exposed protocol
1560
// pref("network.protocol-handler.expose.imap", true);
1561
1562
// Whether IOService.connectivity and NS_IsOffline depends on connectivity status
1563
pref("network.manage-offline-status", true);
1564
// If set to true, IOService.offline depends on IOService.connectivity
1565
pref("network.offline-mirrors-connectivity", false);
1566
1567
// <http>
1568
pref("network.http.version", "1.1"); // default
1569
// pref("network.http.version", "1.0"); // uncomment this out in case of problems
1570
// pref("network.http.version", "0.9"); // it'll work too if you're crazy
1571
// keep-alive option is effectively obsolete. Nevertheless it'll work with
1572
// some older 1.0 servers:
1573
1574
pref("network.http.proxy.version", "1.1"); // default
1575
// pref("network.http.proxy.version", "1.0"); // uncomment this out in case of problems
1576
// (required if using junkbuster proxy)
1577
1578
// this preference can be set to override the socket type used for normal
1579
// HTTP traffic. an empty value indicates the normal TCP/IP socket type.
1580
pref("network.http.default-socket-type", "");
1581
1582
// There is a problem with some IIS7 servers that don't close the connection
1583
// properly after it times out (bug #491541). Default timeout on IIS7 is
1584
// 120 seconds. We need to reuse or drop the connection within this time.
1585
// We set the timeout a little shorter to keep a reserve for cases when
1586
// the packet is lost or delayed on the route.
1587
pref("network.http.keep-alive.timeout", 115);
1588
1589
// Timeout connections if an initial response is not received after 5 mins.
1590
pref("network.http.response.timeout", 300);
1591
1592
// Limit the absolute number of http connections.
1593
// Note: the socket transport service will clamp the number below this if the OS
1594
// cannot allocate that many FDs
1595
#ifdef ANDROID
1596
pref("network.http.max-connections", 40);
1597
#else
1598
pref("network.http.max-connections", 900);
1599
#endif
1600
1601
// If NOT connecting via a proxy, then
1602
// a new connection will only be attempted if the number of active persistent
1603
// connections to the server is less then max-persistent-connections-per-server.
1604
pref("network.http.max-persistent-connections-per-server", 6);
1605
1606
// Number of connections that we can open beyond the standard parallelism limit defined
1607
// by max-persistent-connections-per-server/-proxy to handle urgent-start marked requests
1608
pref("network.http.max-urgent-start-excessive-connections-per-host", 3);
1609
1610
// If connecting via a proxy, then a
1611
// new connection will only be attempted if the number of active persistent
1612
// connections to the proxy is less then max-persistent-connections-per-proxy.
1613
pref("network.http.max-persistent-connections-per-proxy", 32);
1614
1615
// amount of time (in seconds) to suspend pending requests, before spawning a
1616
// new connection, once the limit on the number of persistent connections per
1617
// host has been reached. however, a new connection will not be created if
1618
// max-connections or max-connections-per-server has also been reached.
1619
pref("network.http.request.max-start-delay", 10);
1620
1621
// If a connection is reset, we will retry it max-attempts times.
1622
pref("network.http.request.max-attempts", 10);
1623
1624
// Prefs allowing granular control of referers
1625
// 0=don't send any, 1=send only on clicks, 2=send on image requests as well
1626
pref("network.http.sendRefererHeader", 2);
1627
// Set the default Referrer Policy; to be used unless overriden by the site
1628
// 0=no-referrer, 1=same-origin, 2=strict-origin-when-cross-origin,
1629
// 3=no-referrer-when-downgrade
1630
pref("network.http.referer.defaultPolicy", 3);
1631
// Set the default Referrer Policy applied to third-party trackers when the
1632
// default cookie policy is set to reject third-party trackers;
1633
// to be used unless overriden by the site;
1634
// values are identical to defaultPolicy above
1635
// Trim referrers from trackers to origins by default.
1636
pref("network.http.referer.defaultPolicy.trackers", 2);
1637
// Set the Private Browsing Default Referrer Policy;
1638
// to be used unless overriden by the site;
1639
// values are identical to defaultPolicy above
1640
pref("network.http.referer.defaultPolicy.pbmode", 2);
1641
// Set the Private Browsing Default Referrer Policy applied to third-party
1642
// trackers when the default cookie policy is set to reject third-party
1643
// trackers;
1644
// to be used unless overriden by the site;
1645
// values are identical to defaultPolicy above
1646
// No need to change this pref for trimming referrers from trackers since in
1647
// private windows we already trim all referrers to origin only.
1648
pref("network.http.referer.defaultPolicy.trackers.pbmode", 2);
1649
// false=real referer, true=spoof referer (use target URI as referer)
1650
pref("network.http.referer.spoofSource", false);
1651
// false=allow onion referer, true=hide onion referer (use empty referer)
1652
pref("network.http.referer.hideOnionSource", false);
1653
// 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port
1654
pref("network.http.referer.trimmingPolicy", 0);
1655
// 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port
1656
pref("network.http.referer.XOriginTrimmingPolicy", 0);
1657
// 0=always send, 1=send iff base domains match, 2=send iff hosts match
1658
pref("network.http.referer.XOriginPolicy", 0);
1659
// The maximum allowed length for a referrer header - 4096 default
1660
// 0 means no limit.
1661
pref("network.http.referer.referrerLengthLimit", 4096);
1662
1663
// Include an origin header on non-GET and non-HEAD requests regardless of CORS
1664
// 0=never send, 1=send when same-origin only, 2=always send
1665
pref("network.http.sendOriginHeader", 2);
1666
1667
// Maximum number of consecutive redirects before aborting.
1668
pref("network.http.redirection-limit", 20);
1669
1670
// Enable http compression: comment this out in case of problems with 1.1
1671
// NOTE: support for "compress" has been disabled per bug 196406.
1672
// NOTE: separate values with comma+space (", "): see bug 576033
1673
pref("network.http.accept-encoding", "gzip, deflate");
1674
pref("network.http.accept-encoding.secure", "gzip, deflate, br");
1675
1676
// Prompt for redirects resulting in unsafe HTTP requests
1677
pref("network.http.prompt-temp-redirect", false);
1678
1679
// If true generate CORRUPTED_CONTENT errors for entities that
1680
// contain an invalid Assoc-Req response header
1681
pref("network.http.assoc-req.enforce", false);
1682
1683
// On networks deploying QoS, it is recommended that these be lockpref()'d,
1684
// since inappropriate marking can easily overwhelm bandwidth reservations
1685
// for certain services (i.e. EF for VoIP, AF4x for interactive video,
1686
// AF3x for broadcast/streaming video, etc)
1687
1688
// default value for HTTP
1689
// in a DSCP environment this should be 40 (0x28, or AF11), per RFC-4594,
1690
// Section 4.8 "High-Throughput Data Service Class"
1691
pref("network.http.qos", 0);
1692
1693
// The number of milliseconds after sending a SYN for an HTTP connection,
1694
// to wait before trying a different connection. 0 means do not use a second
1695
// connection.
1696
pref("network.http.connection-retry-timeout", 250);
1697
1698
// The number of seconds after sending initial SYN for an HTTP connection
1699
// to give up if the OS does not give up first
1700
pref("network.http.connection-timeout", 90);
1701
1702
// Close a connection if tls handshake does not finish in given number of
1703
// seconds.
1704
pref("network.http.tls-handshake-timeout", 30);
1705
1706
// The number of seconds after which we time out a connection of a retry (fallback)
1707
// socket when a certain IP family is already preferred. This shorter connection
1708
// timeout allows us to find out more quickly that e.g. an IPv6 host is no longer
1709
// available and let us try an IPv4 address, if provided for the host name.
1710
// Set to '0' to use the default connection timeout.
1711
pref("network.http.fallback-connection-timeout", 5);
1712
1713
// The number of seconds to allow active connections to prove that they have
1714
// traffic before considered stalled, after a network change has been detected
1715
// and signalled.
1716
pref("network.http.network-changed.timeout", 5);
1717
1718
// The maximum number of current global half open sockets allowable
1719
// when starting a new speculative connection.
1720
pref("network.http.speculative-parallel-limit", 6);
1721
1722
// Whether or not to block requests for non head js/css items (e.g. media)
1723
// while those elements load.
1724
pref("network.http.rendering-critical-requests-prioritization", true);
1725
1726
// Disable IPv6 for backup connections to workaround problems about broken
1727
// IPv6 connectivity.
1728
pref("network.http.fast-fallback-to-IPv4", true);
1729
1730
// Try and use SPDY when using SSL
1731
pref("network.http.spdy.enabled", true);
1732
pref("network.http.spdy.enabled.http2", true);
1733
pref("network.http.spdy.enabled.deps", true);
1734
pref("network.http.spdy.enforce-tls-profile", true);
1735
pref("network.http.spdy.chunk-size", 16000);
1736
pref("network.http.spdy.timeout", 170);
1737
pref("network.http.spdy.coalesce-hostnames", true);
1738
pref("network.http.spdy.persistent-settings", false);
1739
pref("network.http.spdy.ping-threshold", 58);
1740
pref("network.http.spdy.ping-timeout", 8);
1741
pref("network.http.spdy.send-buffer-size", 131072);
1742
pref("network.http.spdy.allow-push", true);
1743
pref("network.http.spdy.push-allowance", 131072); // 128KB
1744
pref("network.http.spdy.pull-allowance", 12582912); // 12MB
1745
pref("network.http.spdy.default-concurrent", 100);
1746
pref("network.http.spdy.default-hpack-buffer", 65536); // 64k
1747
pref("network.http.spdy.websockets", true);
1748
pref("network.http.spdy.enable-hpack-dump", false);
1749
1750
// alt-svc allows separation of transport routing from
1751
// the origin host without using a proxy.
1752
pref("network.http.altsvc.enabled", true);
1753
pref("network.http.altsvc.oe", true);
1754
1755
// Turn on 0RTT data for TLS 1.3
1756
pref("security.tls.enable_0rtt_data", true);
1757
1758
// the origin extension impacts h2 coalescing
1759
pref("network.http.originextension", true);
1760
1761
pref("network.http.diagnostics", false);
1762
1763
pref("network.http.pacing.requests.enabled", true);
1764
pref("network.http.pacing.requests.min-parallelism", 6);
1765
pref("network.http.pacing.requests.hz", 80);
1766
pref("network.http.pacing.requests.burst", 10);
1767
1768
// TCP Keepalive config for HTTP connections.
1769
pref("network.http.tcp_keepalive.short_lived_connections", true);
1770
// Max time from initial request during which conns are considered short-lived.
1771
pref("network.http.tcp_keepalive.short_lived_time", 60);
1772
// Idle time of TCP connection until first keepalive probe sent.
1773
pref("network.http.tcp_keepalive.short_lived_idle_time", 10);
1774
1775
pref("network.http.tcp_keepalive.long_lived_connections", true);
1776
pref("network.http.tcp_keepalive.long_lived_idle_time", 600);
1777
1778
pref("network.http.enforce-framing.http1", false); // should be named "strict"
1779
pref("network.http.enforce-framing.soft", true);
1780
pref("network.http.enforce-framing.strict_chunked_encoding", true);
1781
1782
// Max size, in bytes, for received HTTP response header.
1783
pref("network.http.max_response_header_size", 393216);
1784
1785
// If we should attempt to race the cache and network
1786
pref("network.http.rcwn.enabled", true);
1787
pref("network.http.rcwn.cache_queue_normal_threshold", 8);
1788
pref("network.http.rcwn.cache_queue_priority_threshold", 2);
1789
// We might attempt to race the cache with the network only if a resource
1790
// is smaller than this size.
1791
pref("network.http.rcwn.small_resource_size_kb", 256);
1792
1793
pref("network.http.rcwn.min_wait_before_racing_ms", 0);
1794
pref("network.http.rcwn.max_wait_before_racing_ms", 500);
1795
1796
// The ratio of the transaction count for the focused window and the count of
1797
// all available active connections.
1798
pref("network.http.focused_window_transaction_ratio", "0.9");
1799
1800
// This is the size of the flow control window (KB) (i.e., the amount of data
1801
// that the parent can send to the child before getting an ack). 0 for disable
1802
// the flow control.
1803
pref("network.http.send_window_size", 1024);
1804
1805
// Whether or not we give more priority to active tab.
1806
// Note that this requires restart for changes to take effect.
1807
#ifdef ANDROID
1808
// disabled because of bug 1382274
1809
pref("network.http.active_tab_priority", false);
1810
#else
1811
pref("network.http.active_tab_priority", true);
1812
#endif
1813
1814
// default values for FTP
1815
// in a DSCP environment this should be 40 (0x28, or AF11), per RFC-4594,
1816
// Section 4.8 "High-Throughput Data Service Class", and 80 (0x50, or AF22)
1817
// per Section 4.7 "Low-Latency Data Service Class".
1818
pref("network.ftp.data.qos", 0);
1819
pref("network.ftp.control.qos", 0);
1820
pref("network.ftp.enabled", true);
1821
1822
// The max time to spend on xpcom events between two polls in ms.
1823
pref("network.sts.max_time_for_events_between_two_polls", 100);
1824
1825
// The number of seconds we don't let poll() handing indefinitely after network
1826
// link change has been detected so we can detect breakout of the pollable event.
1827
// Expected in seconds, 0 to disable.
1828
pref("network.sts.poll_busy_wait_period", 50);
1829
1830
// The number of seconds we cap poll() timeout to during the network link change
1831
// detection period.
1832
// Expected in seconds, 0 to disable.
1833
pref("network.sts.poll_busy_wait_period_timeout", 7);
1834
1835
// During shutdown we limit PR_Close calls. If time exceeds this pref (in ms)
1836
// let sockets just leak.
1837
pref("network.sts.max_time_for_pr_close_during_shutdown", 5000);
1838
1839
// When the polling socket pair we use to wake poll() up on demand doesn't
1840
// get signalled (is not readable) within this timeout, we try to repair it.
1841
// This timeout can be disabled by setting this pref to 0.
1842
// The value is expected in seconds.
1843
pref("network.sts.pollable_event_timeout", 6);
1844
1845
// Enable/disable sni encryption.
1846
pref("network.security.esni.enabled", false);
1847
1848
// 2147483647 == PR_INT32_MAX == ~2 GB
1849
pref("network.websocket.max-message-size", 2147483647);
1850
1851
// Should we automatically follow http 3xx redirects during handshake
1852
pref("network.websocket.auto-follow-http-redirects", false);
1853
1854
// the number of seconds to wait for websocket connection to be opened
1855
pref("network.websocket.timeout.open", 20);
1856
1857
// the number of seconds to wait for a clean close after sending the client
1858
// close message
1859
pref("network.websocket.timeout.close", 20);
1860
1861
// the number of seconds of idle read activity to sustain before sending a
1862
// ping probe. 0 to disable.
1863
pref("network.websocket.timeout.ping.request", 0);
1864
1865
// the deadline, expressed in seconds, for some read activity to occur after
1866
// generating a ping. If no activity happens then an error and unclean close
1867
// event is sent to the javascript websockets application
1868
pref("network.websocket.timeout.ping.response", 10);
1869
1870
// Defines whether or not to try to negotiate the permessage compression
1871
// extension with the websocket server.
1872
pref("network.websocket.extensions.permessage-deflate", true);
1873
1874
// the maximum number of concurrent websocket sessions. By specification there
1875
// is never more than one handshake oustanding to an individual host at
1876
// one time.
1877
pref("network.websocket.max-connections", 200);
1878
1879
// by default scripts loaded from a https:// origin can only open secure
1880
// (i.e. wss://) websockets.
1881
pref("network.websocket.allowInsecureFromHTTPS", false);
1882
1883
// by default we delay websocket reconnects to same host/port if previous
1884
// connection failed, per RFC 6455 section 7.2.3
1885
pref("network.websocket.delay-failed-reconnects", true);
1886
1887
// </ws>
1888
1889
// Server-Sent Events
1890
// Equal to the DEFAULT_RECONNECTION_TIME_VALUE value in nsEventSource.cpp
1891
pref("dom.server-events.default-reconnection-time", 5000); // in milliseconds
1892
1893
// This preference, if true, causes all UTF-8 domain names to be normalized to
1894
// punycode. The intention is to allow UTF-8 domain names as input, but never
1895
// generate them from punycode.
1896
pref("network.IDN_show_punycode", false);
1897
1898
// If "network.IDN.use_whitelist" is set to true, TLDs with
1899
// "network.IDN.whitelist.tld" explicitly set to true are treated as
1900
// IDN-safe. Otherwise, they're treated as unsafe and punycode will be used
1901
// for displaying them in the UI (e.g. URL bar), unless they conform to one of
1902
// the profiles specified in
1904
// If "network.IDN.restriction_profile" is "high", the Highly Restrictive
1905
// profile is used.
1906
// If "network.IDN.restriction_profile" is "moderate", the Moderately
1907
// Restrictive profile is used.
1908
// In all other cases, the ASCII-Only profile is used.
1909
// Note that these preferences are referred to ONLY when
1910
// "network.IDN_show_punycode" is false. In other words, all IDNs will be shown
1911
// in punycode if "network.IDN_show_punycode" is true.
1912
pref("network.IDN.restriction_profile", "high");
1913
pref("network.IDN.use_whitelist", false);
1914
1915
// ccTLDs
1916
pref("network.IDN.whitelist.ac", true);
1917
pref("network.IDN.whitelist.ar", true);
1918
pref("network.IDN.whitelist.at", true);
1919
pref("network.IDN.whitelist.br", true);
1920
pref("network.IDN.whitelist.ca", true);
1921
pref("network.IDN.whitelist.ch", true);
1922
pref("network.IDN.whitelist.cl", true);
1923
pref("network.IDN.whitelist.cn", true);
1924
pref("network.IDN.whitelist.de", true);
1925
pref("network.IDN.whitelist.dk", true);
1926
pref("network.IDN.whitelist.ee", true);
1927
pref("network.IDN.whitelist.es", true);
1928
pref("network.IDN.whitelist.fi", true);
1929
pref("network.IDN.whitelist.fr", true);
1930
pref("network.IDN.whitelist.gr", true);
1931
pref("network.IDN.whitelist.gt", true);
1932
pref("network.IDN.whitelist.hu", true);
1933
pref("network.IDN.whitelist.il", true);
1934
pref("network.IDN.whitelist.io", true);
1935
pref("network.IDN.whitelist.ir", true);
1936
pref("network.IDN.whitelist.is", true);
1937
pref("network.IDN.whitelist.jp", true);
1938
pref("network.IDN.whitelist.kr", true);
1939
pref("network.IDN.whitelist.li", true);
1940
pref("network.IDN.whitelist.lt", true);
1941
pref("network.IDN.whitelist.lu", true);
1942
pref("network.IDN.whitelist.lv", true);
1943
pref("network.IDN.whitelist.no", true);
1944
pref("network.IDN.whitelist.nu", true);
1945
pref("network.IDN.whitelist.nz", true);
1946
pref("network.IDN.whitelist.pl", true);
1947
pref("network.IDN.whitelist.pm", true);
1948
pref("network.IDN.whitelist.pr", true);
1949
pref("network.IDN.whitelist.re", true);
1950
pref("network.IDN.whitelist.se", true);
1951
pref("network.IDN.whitelist.sh", true);
1952
pref("network.IDN.whitelist.si", true);
1953
pref("network.IDN.whitelist.tf", true);
1954
pref("network.IDN.whitelist.th", true);
1955
pref("network.IDN.whitelist.tm", true);
1956
pref("network.IDN.whitelist.tw", true);
1957
pref("network.IDN.whitelist.ua", true);
1958
pref("network.IDN.whitelist.vn", true);
1959
pref("network.IDN.whitelist.wf", true);
1960
pref("network.IDN.whitelist.yt", true);
1961
1962
// IDN ccTLDs
1963
// ae, UAE, .<Emarat>
1964
pref("network.IDN.whitelist.xn--mgbaam7a8h", true);
1965
// cn, China, .<China> with variants
1966
pref("network.IDN.whitelist.xn--fiqz9s", true); // Traditional
1967
pref("network.IDN.whitelist.xn--fiqs8s", true); // Simplified
1968
// eg, Egypt, .<Masr>
1969
pref("network.IDN.whitelist.xn--wgbh1c", true);
1970
// hk, Hong Kong, .<Hong Kong>
1971
pref("network.IDN.whitelist.xn--j6w193g", true);
1972
// ir, Iran, <.Iran> with variants
1973
pref("network.IDN.whitelist.xn--mgba3a4f16a", true);
1974
pref("network.IDN.whitelist.xn--mgba3a4fra", true);
1975
// jo, Jordan, .<Al-Ordon>
1976
pref("network.IDN.whitelist.xn--mgbayh7gpa", true);
1977
// lk, Sri Lanka, .<Lanka> and .<Ilangai>
1978
pref("network.IDN.whitelist.xn--fzc2c9e2c", true);
1979
pref("network.IDN.whitelist.xn--xkc2al3hye2a", true);
1980
// qa, Qatar, .<Qatar>
1981
pref("network.IDN.whitelist.xn--wgbl6a", true);
1982
// rs, Serbia, .<Srb>
1983
pref("network.IDN.whitelist.xn--90a3ac", true);
1984
// ru, Russian Federation, .<RF>
1985
pref("network.IDN.whitelist.xn--p1ai", true);
1986
// sa, Saudi Arabia, .<al-Saudiah> with variants
1987
pref("network.IDN.whitelist.xn--mgberp4a5d4ar", true);
1988
pref("network.IDN.whitelist.xn--mgberp4a5d4a87g", true);
1989
pref("network.IDN.whitelist.xn--mgbqly7c0a67fbc", true);
1990
pref("network.IDN.whitelist.xn--mgbqly7cvafr", true);
1991
// sy, Syria, .<Souria>
1992
pref("network.IDN.whitelist.xn--ogbpf8fl", true);
1993
// th, Thailand, .<Thai>
1994
pref("network.IDN.whitelist.xn--o3cw4h", true);
1995
// tw, Taiwan, <.Taiwan> with variants
1996
pref("network.IDN.whitelist.xn--kpry57d", true); // Traditional
1997
pref("network.IDN.whitelist.xn--kprw13d", true); // Simplified
1998
1999
// gTLDs
2000
pref("network.IDN.whitelist.asia", true);
2001
pref("network.IDN.whitelist.biz", true);
2002
pref("network.IDN.whitelist.cat", true);
2003
pref("network.IDN.whitelist.info", true);
2004
pref("network.IDN.whitelist.museum", true);
2005
pref("network.IDN.whitelist.org", true);
2006
pref("network.IDN.whitelist.tel", true);
2007
2008
// NOTE: Before these can be removed, one of bug 414812's tests must be updated
2009
// or it will likely fail! Please CC jwalden+bmo on the bug associated
2010
// with removing these so he can provide a patch to make the necessary
2011
// changes to avoid bustage.
2012
// ".test" localised TLDs for ICANN's top-level IDN trial
2013
pref("network.IDN.whitelist.xn--0zwm56d", true);
2014
pref("network.IDN.whitelist.xn--11b5bs3a9aj6g", true);
2015
pref("network.IDN.whitelist.xn--80akhbyknj4f", true);
2016
pref("network.IDN.whitelist.xn--9t4b11yi5a", true);
2017
pref("network.IDN.whitelist.xn--deba0ad", true);
2018
pref("network.IDN.whitelist.xn--g6w251d", true);
2019
pref("network.IDN.whitelist.xn--hgbk6aj7f53bba", true);
2020
pref("network.IDN.whitelist.xn--hlcj6aya9esc7a", true);
2021
pref("network.IDN.whitelist.xn--jxalpdlp", true);
2022
pref("network.IDN.whitelist.xn--kgbechtv", true);
2023
pref("network.IDN.whitelist.xn--zckzah", true);
2024
2025
// If a domain includes any of the blocklist characters, it may be a spoof
2026
// attempt and so we always display the domain name as punycode. This would
2027
// override the settings "network.IDN_show_punycode" and
2028
// "network.IDN.whitelist.*".
2029
// For a complete list of the blocked IDN characters see:
2030
// netwerk/dns/IDNCharacterBlocklist.inc
2031
2032
// This pref may contain characters that will override the hardcoded blocklist,
2033
// so their presence in a domain name will not cause it to be displayed as
2034
// punycode.
2035
// Note that this only removes the characters from the blocklist, but there may
2036
// be other rules in place that cause it to be displayed as punycode.
2037
pref("network.IDN.extra_allowed_chars", "");
2038
// This pref may contain additional blocklist characters
2039
pref("network.IDN.extra_blocked_chars", "");
2040
2041
// This preference specifies a list of domains for which DNS lookups will be
2042
// IPv4 only. Works around broken DNS servers which can't handle IPv6 lookups
2043
// and/or allows the user to disable IPv6 on a per-domain basis. See bug 68796.
2044
pref("network.dns.ipv4OnlyDomains", "");
2045
2046
// This preference can be used to turn off IPv6 name lookups. See bug 68796.
2047
pref("network.dns.disableIPv6", false);
2048
2049
// This is the number of dns cache entries allowed
2050
pref("network.dnsCacheEntries", 400);
2051
2052
// In the absence of OS TTLs, the DNS cache TTL value
2053
pref("network.dnsCacheExpiration", 60);
2054
2055
// Get TTL; not supported on all platforms; nop on the unsupported ones.
2056
pref("network.dns.get-ttl", true);
2057
2058
// For testing purposes! Makes the native resolver resolve IPv4 "localhost"
2059
// instead of the actual given name.
2060
pref("network.dns.native-is-localhost", false);
2061
2062
// The grace period allows the DNS cache to use expired entries, while kicking off
2063
// a revalidation in the background.
2064
pref("network.dnsCacheExpirationGracePeriod", 60);
2065
2066
// This preference can be used to turn off DNS prefetch.
2067
pref("network.dns.disablePrefetch", false);
2068
2069
// This preference controls whether .onion hostnames are
2070
// rejected before being given to DNS. RFC 7686
2071
pref("network.dns.blockDotOnion", true);
2072
2073
// These domains are treated as localhost equivalent
2074
pref("network.dns.localDomains", "");
2075
2076
// When non empty all non-localhost DNS queries (including IP addresses)
2077
// resolve to this value. The value can be a name or an IP address.
2078
// domains mapped to localhost with localDomains stay localhost.
2079
pref("network.dns.forceResolve", "");
2080
2081
// Contols whether or not "localhost" should resolve when offline
2082
pref("network.dns.offline-localhost", true);
2083
2084
// Defines how much longer resolver threads should stay idle before are shut down.
2085
// A negative value will keep the thread alive forever.
2086
pref("network.dns.resolver-thread-extra-idle-time-seconds", 60);
2087
2088
// The maximum allowed length for a URL - 1MB default
2089
pref("network.standard-url.max-length", 1048576);
2090
2091
// Whether nsIURI.host/.hostname/.spec should return a punycode string
2092
// If set to false we will revert to previous behaviour and return a unicode string.
2093
pref("network.standard-url.punycode-host", true);
2094
2095
// Idle timeout for ftp control connections - 5 minute default
2096
pref("network.ftp.idleConnectionTimeout", 300);
2097
2098
// enables the prefetch service (i.e., prefetching of <link rel="next"> and
2099
// <link rel="prefetch"> URLs).
2100
pref("network.prefetch-next", true);
2101
// enables the preloading (i.e., preloading of <link rel="preload"> URLs).
2102
pref("network.preload", false);
2103
2104
// The following prefs pertain to the negotiate-auth extension (see bug 17578),
2105
// which provides transparent Kerberos or NTLM authentication using the SPNEGO
2106
// protocol. Each pref is a comma-separated list of keys, where each key has
2107
// the format:
2108
// [scheme "://"] [host [":" port]]
2109
// For example, "foo.com" would match "http://www.foo.com/bar", etc.
2110
2111
// This list controls which URIs can use the negotiate-auth protocol. This
2112
// list should be limited to the servers you know you'll need to login to.
2113
pref("network.negotiate-auth.trusted-uris", "");
2114
// This list controls which URIs can support delegation.
2115
pref("network.negotiate-auth.delegation-uris", "");