You are viewing the web page at the URL http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js, using the referer http://planet.mozilla.org/. Please click here to view the page using your own HTTP client's referer capabilities.

Mozilla Cross-Reference mozilla-central
mozilla/ modules/ libpref/ src/ init/ all.js
Hg Log
Hg Blame
Diff file
Raw file
view using tree:
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  * for example xpfe/bootstrap/browser-prefs.js
9  *
10  * Platform-specific #ifdefs at the end of this file override the generic
11  * entries at the top.
12  */
13 
14 /*
15  * SYNTAX HINTS:
16  *
17  *  - Dashes are delimiters; use underscores instead.
18  *  - The first character after a period must be alphabetic.
19  *  - Computed values (e.g. 50 * 1024) don't work.
20  */
21 
22 pref("keyword.enabled", false);
23 pref("general.useragent.locale", "chrome://global/locale/intl.properties");
24 pref("general.useragent.compatMode.firefox", false);
25 
26 // This pref exists only for testing purposes. In order to disable all
27 // overrides by default, don't initialize UserAgentOverrides.jsm.
28 pref("general.useragent.site_specific_overrides", true);
29 
30 pref("general.config.obscure_value", 13); // for MCD .cfg files
31 
32 pref("general.warnOnAboutConfig", true);
33 
34 // maximum number of dated backups to keep at any time
35 pref("browser.bookmarks.max_backups",       5);
36 
37 // Preference for switching the cache backend, can be changed freely at runtime
38 // 0 - use the old (Darin's) cache
39 // 1 - use the new cache back-end (cache v2)
40 pref("browser.cache.use_new_backend",       0);
41 pref("browser.cache.use_new_backend_temp",  true);
42 
43 pref("browser.cache.disk.enable",           true);
44 // Is this the first-time smartsizing has been introduced?
45 pref("browser.cache.disk.smart_size.first_run", true);
46 // Does the user want smart-sizing?
47 pref("browser.cache.disk.smart_size.enabled", true);
48 // Which max value should we use for smart-sizing?
49 pref("browser.cache.disk.smart_size.use_old_max", true);
50 // Size (in KB) explicitly set by the user. Used when smart_size.enabled == false
51 pref("browser.cache.disk.capacity",         256000);
52 // When smartsizing is disabled we could potentially fill all disk space by
53 // cache data when the disk capacity is not set correctly. To avoid that we
54 // check the free space every time we write some data to the cache. The free
55 // space is checked against two limits. Once the soft limit is reached we start
56 // evicting the least useful entries, when we reach the hard limit writing to
57 // the entry fails.
58 pref("browser.cache.disk.free_space_soft_limit", 5120); // 5MB
59 pref("browser.cache.disk.free_space_hard_limit", 1024); // 1MB
60 // Max-size (in KB) for entries in disk cache. Set to -1 for no limit.
61 // (Note: entries bigger than 1/8 of disk-cache are never cached)
62 pref("browser.cache.disk.max_entry_size",    51200);  // 50 MB
63 pref("browser.cache.memory.enable",         true);
64 // -1 = determine dynamically, 0 = none, n = memory capacity in kilobytes
65 //pref("browser.cache.memory.capacity",     -1);
66 // Max-size (in KB) for entries in memory cache. Set to -1 for no limit.
67 // (Note: entries bigger than than 90% of the mem-cache are never cached)
68 pref("browser.cache.memory.max_entry_size",  5120);
69 // Memory limit (in kB) for new cache data not yet written to disk. Writes to
70 // the cache are buffered and written to disk on background with low priority.
71 // With a slow persistent storage these buffers may grow when data is coming
72 // fast from the network. When the amount of unwritten data is exceeded, new
73 // writes will simply fail. We have two buckets, one for important data
74 // (priority) like html, css, fonts and js, and one for other data like images,
75 // video, etc.
76 // Note: 0 means no limit.
77 pref("browser.cache.disk.max_chunks_memory_usage", 10240);
78 pref("browser.cache.disk.max_priority_chunks_memory_usage", 10240);
79 
80 pref("browser.cache.disk_cache_ssl",        true);
81 // 0 = once-per-session, 1 = each-time, 2 = never, 3 = when-appropriate/automatically
82 pref("browser.cache.check_doc_frequency",   3);
83 // Limit of recent metadata we keep in memory for faster access, in Kb
84 pref("browser.cache.disk.metadata_memory_limit", 250); // 0.25 MB
85 // The number of chunks we preload ahead of read.  One chunk has currently 256kB.
86 pref("browser.cache.disk.preload_chunk_count", 4); // 1 MB of read ahead
87 // The half life used to re-compute cache entries frecency in hours.
88 pref("browser.cache.frecency_half_life_hours", 6);
89 
90 pref("browser.cache.offline.enable",           true);
91 // enable offline apps by default, disable prompt
92 pref("offline-apps.allow_by_default",          true);
93 
94 // offline cache capacity in kilobytes
95 pref("browser.cache.offline.capacity",         512000);
96 
97 // the user should be warned if offline app disk usage exceeds this amount
98 // (in kilobytes)
99 pref("offline-apps.quota.warn",        51200);
100 
101 // zlib compression level used for cache compression:
102 // 0 => disable compression
103 // 1 => best speed
104 // 9 => best compression
105 // cache compression turned off for now - see bug #715198
106 pref("browser.cache.compression_level", 0);
107 
108 // Whether or not testing features are enabled.
109 pref("dom.quotaManager.testing", false);
110 
111 // Whether or not indexedDB is enabled.
112 pref("dom.indexedDB.enabled", true);
113 // Space to allow indexedDB databases before prompting (in MB).
114 pref("dom.indexedDB.warningQuota", 50);
115 // Whether or not indexedDB experimental features are enabled.
116 pref("dom.indexedDB.experimental", false);
117 
118 // Whether or not Web Workers are enabled.
119 pref("dom.workers.enabled", true);
120 // The number of workers per domain allowed to run concurrently.
121 pref("dom.workers.maxPerDomain", 20);
122 
123 // Whether or not Shared Web Workers are enabled.
124 pref("dom.workers.sharedWorkers.enabled", true);
125 
126 // Service workers
127 pref("dom.serviceWorkers.enabled", false);
128 
129 // Whether nonzero values can be returned from performance.timing.*
130 pref("dom.enable_performance", true);
131 
132 // Whether resource timing will be gathered and returned by performance.GetEntries*
133 pref("dom.enable_resource_timing", false);
134 
135 // Whether the Gamepad API is enabled
136 pref("dom.gamepad.enabled", true);
137 #ifdef RELEASE_BUILD
138 pref("dom.gamepad.non_standard_events.enabled", false);
139 #else
140 pref("dom.gamepad.non_standard_events.enabled", true);
141 #endif
142 
143 // Whether the KeyboardEvent.code is enabled
144 #ifdef RELEASE_BUILD
145 pref("dom.keyboardevent.code.enabled", false);
146 #else
147 pref("dom.keyboardevent.code.enabled", true);
148 #endif
149 
150 // Whether the WebCrypto API is enabled
151 #ifdef RELEASE_BUILD
152 pref("dom.webcrypto.enabled", false);
153 #else
154 pref("dom.webcrypto.enabled", true);
155 #endif
156 
157 // Whether the UndoManager API is enabled
158 pref("dom.undo_manager.enabled", false);
159 
160 // Whether to run add-on code in different compartments from browser code. This
161 // causes a separate compartment for each (addon, global) combination, which may
162 // significantly increase the number of compartments in the system.
163 pref("dom.compartment_per_addon", false);
164 
165 // Fastback caching - if this pref is negative, then we calculate the number
166 // of content viewers to cache based on the amount of available memory.
167 pref("browser.sessionhistory.max_total_viewers", -1);
168 
169 pref("ui.use_native_colors", true);
170 pref("ui.click_hold_context_menus", false);
171 pref("browser.display.use_document_fonts",  1);  // 0 = never, 1 = quick, 2 = always
172 pref("browser.display.use_document_colors", true);
173 pref("browser.display.use_system_colors",   false);
174 pref("browser.display.foreground_color",    "#000000");
175 pref("browser.display.background_color",    "#FFFFFF");
176 pref("browser.display.force_inline_alttext", false); // true = force ALT text for missing images to be layed out inline
177 // 0 = no external leading,
178 // 1 = use external leading only when font provides,
179 // 2 = add extra leading both internal leading and external leading are zero
180 pref("browser.display.normal_lineheight_calc_control", 2);
181 pref("browser.display.show_image_placeholders", true); // true = show image placeholders while image is loaded and when image is broken
182 // min font device pixel size at which to turn on high quality
183 pref("browser.display.auto_quality_min_font_size", 20);
184 pref("browser.anchor_color",                "#0000EE");
185 pref("browser.active_color",                "#EE0000");
186 pref("browser.visited_color",               "#551A8B");
187 pref("browser.underline_anchors",           true);
188 pref("browser.enable_automatic_image_resizing", false);
189 pref("browser.enable_click_image_resizing", true);
190 
191 // See http://dev.w3.org/html5/spec/forms.html#attr-fe-autofocus
192 pref("browser.autofocus", true);
193 
194 // See http://whatwg.org/specs/web-apps/current-work/#ping
195 pref("browser.send_pings", false);
196 pref("browser.send_pings.max_per_link", 1);           // limit the number of pings that are sent per link click
197 pref("browser.send_pings.require_same_host", false);  // only send pings to the same host if this is true
198 
199 pref("browser.display.use_focus_colors",    false);
200 pref("browser.display.focus_background_color", "#117722");
201 pref("browser.display.focus_text_color",     "#ffffff");
202 pref("browser.display.focus_ring_width",     1);
203 pref("browser.display.focus_ring_on_anything", false);
204 // focus ring border style.
205 // 0 = solid border, 1 = dotted border
206 pref("browser.display.focus_ring_style", 1);
207 
208 pref("browser.helperApps.alwaysAsk.force",  false);
209 pref("browser.helperApps.neverAsk.saveToDisk", "");
210 pref("browser.helperApps.neverAsk.openFile", "");
211 pref("browser.helperApps.deleteTempFileOnExit", false);
212 
213 // xxxbsmedberg: where should prefs for the toolkit go?
214 pref("browser.chrome.toolbar_tips",         true);
215 // 0 = Pictures Only, 1 = Text Only, 2 = Pictures and Text
216 pref("browser.chrome.toolbar_style",        2);
217 // max image size for which it is placed in the tab icon for tabbrowser.
218 // if 0, no images are used for tab icons for image documents.
219 pref("browser.chrome.image_icons.max_size", 1024);
220 
221 pref("browser.triple_click_selects_paragraph", true);
222 
223 // Print/Preview Shrink-To-Fit won't shrink below 20% for text-ish documents.
224 pref("print.shrink-to-fit.scale-limit-percent", 20);
225 
226 // Media cache size in kilobytes
227 pref("media.cache_size", 512000);
228 
229 // Master HTML5 media volume scale.
230 pref("media.volume_scale", "1.0");
231 
232 // Timeout for wakelock release
233 pref("media.wakelock_timeout", 2000);
234 
235 #ifdef MOZ_WMF
236 pref("media.windows-media-foundation.enabled", true);
237 pref("media.windows-media-foundation.use-dxva", true);
238 pref("media.windows-media-foundation.play-stand-alone", true);
239 #endif
240 #ifdef MOZ_DIRECTSHOW
241 pref("media.directshow.enabled", true);
242 #endif
243 #ifdef MOZ_FMP4
244 pref("media.fragmented-mp4.enabled", true);
245 pref("media.fragmented-mp4.ffmpeg.enabled", false);
246 // Denotes that the fragmented MP4 parser can be created by <video> elements.
247 // This is for testing, since the parser can't yet handle non-fragmented MP4,
248 // so it will fail to play most MP4 files.
249 pref("media.fragmented-mp4.exposed", false);
250 // Specifies whether the fragmented MP4 parser uses a test decoder that
251 // just outputs blank frames/audio instead of actually decoding. The blank
252 // decoder works on all platforms.
253 pref("media.fragmented-mp4.use-blank-decoder", false);
254 #endif
255 #ifdef MOZ_RAW
256 pref("media.raw.enabled", true);
257 #endif
258 pref("media.ogg.enabled", true);
259 #ifdef MOZ_OPUS
260 pref("media.opus.enabled", true);
261 #endif
262 #ifdef MOZ_WAVE
263 pref("media.wave.enabled", true);
264 #endif
265 #ifdef MOZ_WEBM
266 pref("media.webm.enabled", true);
267 #endif
268 #ifdef MOZ_GSTREAMER
269 pref("media.gstreamer.enabled", true);
270 #endif
271 #ifdef MOZ_APPLEMEDIA
272 pref("media.apple.mp3.enabled", true);
273 pref("media.apple.mp4.enabled", true);
274 #endif
275 #ifdef MOZ_WEBRTC
276 pref("media.navigator.enabled", true);
277 pref("media.navigator.video.enabled", true);
278 pref("media.navigator.load_adapt", true);
279 pref("media.navigator.load_adapt.measure_interval",1000);
280 pref("media.navigator.load_adapt.avg_seconds",3);
281 pref("media.navigator.load_adapt.high_load","0.90");
282 pref("media.navigator.load_adapt.low_load","0.40");
283 pref("media.navigator.video.default_fps",30);
284 pref("media.navigator.video.default_minfps",10);
285 
286 pref("media.webrtc.debug.trace_mask", 0);
287 pref("media.webrtc.debug.multi_log", false);
288 pref("media.webrtc.debug.aec_log_dir", "");
289 pref("media.webrtc.debug.log_file", "");
290 pref("media.webrtc.debug.aec_dump_max_size", 4194304); // 4MB
291 
292 #ifdef MOZ_WIDGET_GONK
293 pref("media.navigator.video.default_width",320);
294 pref("media.navigator.video.default_height",240);
295 pref("media.peerconnection.enabled", true);
296 pref("media.peerconnection.video.enabled", true);
297 pref("media.navigator.video.max_fs", 1200); // 640x480 == 1200mb
298 pref("media.navigator.video.max_fr", 30);
299 pref("media.navigator.video.h264.max_br", 700); // 8x10
300 pref("media.navigator.video.h264.max_mbps", 11880); // CIF@30fps
301 pref("media.peerconnection.video.h264_enabled", false);
302 pref("media.getusermedia.aec", 4);
303 #else
304 pref("media.navigator.video.default_width",0);  // adaptive default
305 pref("media.navigator.video.default_height",0); // adaptive default
306 pref("media.peerconnection.enabled", true);
307 pref("media.peerconnection.video.enabled", true);
308 pref("media.navigator.video.max_fs", 0); // unrestricted
309 pref("media.navigator.video.max_fr", 0); // unrestricted
310 pref("media.navigator.video.h264.max_br", 0);
311 pref("media.navigator.video.h264.max_mbps", 0);
312 pref("media.peerconnection.video.h264_enabled", false);
313 pref("media.getusermedia.aec", 1);
314 #endif
315 pref("media.peerconnection.video.min_bitrate", 200);
316 pref("media.peerconnection.video.start_bitrate", 300);
317 pref("media.peerconnection.video.max_bitrate", 2000);
318 pref("media.navigator.permission.disabled", false);
319 pref("media.peerconnection.default_iceservers", "[{\"url\": \"stun:stun.services.mozilla.com\"}]");
320 pref("media.peerconnection.trickle_ice", true);
321 pref("media.peerconnection.use_document_iceservers", true);
322 // Do not enable identity before ensuring that the UX cannot be spoofed
323 // see Bug 884573 for details
324 // Do not enable identity before fixing domain comparison: see Bug 958741
325 // Do not enable identity before fixing origin spoofing: see Bug 968335
326 pref("media.peerconnection.identity.enabled", false);
327 pref("media.peerconnection.identity.timeout", 10000);
328 // These values (aec, agc, and noice) are from media/webrtc/trunk/webrtc/common_types.h
329 // kXxxUnchanged = 0, kXxxDefault = 1, and higher values are specific to each
330 // setting (for Xxx = Ec, Agc, or Ns).  Defaults are all set to kXxxDefault here.
331 pref("media.peerconnection.turn.disable", false);
332 pref("media.getusermedia.aec_enabled", true);
333 pref("media.getusermedia.agc_enabled", false);
334 pref("media.getusermedia.agc", 1);
335 pref("media.getusermedia.noise_enabled", true);
336 pref("media.getusermedia.noise", 1);
337 // Adjustments for OS-specific input delay (lower bound)
338 // Adjustments for OS-specific AudioStream+cubeb+output delay (lower bound)
339 #if defined(XP_MACOSX)
340 pref("media.peerconnection.capture_delay", 50);
341 pref("media.getusermedia.playout_delay", 10);
342 #elif defined(XP_WIN)
343 pref("media.peerconnection.capture_delay", 50);
344 pref("media.getusermedia.playout_delay", 40);
345 #elif defined(ANDROID)
346 pref("media.peerconnection.capture_delay", 100);
347 pref("media.getusermedia.playout_delay", 100);
348 // Whether to enable Webrtc Hardware acceleration support
349 pref("media.navigator.hardware.vp8_encode.acceleration_enabled", false);
350 pref("media.navigator.hardware.vp8_decode.acceleration_enabled", false);
351 #elif defined(XP_LINUX)
352 pref("media.peerconnection.capture_delay", 70);
353 pref("media.getusermedia.playout_delay", 50);
354 #else
355 // *BSD, others - merely a guess for now
356 pref("media.peerconnection.capture_delay", 50);
357 pref("media.getusermedia.playout_delay", 50);
358 #endif
359 #else
360 #ifdef ANDROID
361 pref("media.navigator.enabled", true);
362 #endif
363 #endif
364 
365 // do not enable screensharing before addressing security concerns: Bug 1035577
366 // do not enable screensharing before implementing app/window sharing: Bug 1036653
367 // do not enable screensharing before source constraints are finalized: Bug 1033885
368 // do not enable screensharing before UX is ready: Bug 1035577
369 pref("media.getusermedia.screensharing.enabled", false);
370 pref("media.getusermedia.screensharing.allowed_domains", "");
371 
372 // TextTrack support
373 pref("media.webvtt.enabled", true);
374 pref("media.webvtt.regions.enabled", false);
375 
376 // AudioTrack and VideoTrack support
377 pref("media.track.enabled", false);
378 
379 // Whether to enable MediaSource support
380 pref("media.mediasource.enabled", false);
381 
382 #ifdef MOZ_WEBSPEECH
383 pref("media.webspeech.recognition.enable", false);
384 pref("media.webspeech.synth.enabled", false);
385 #endif
386 #ifdef MOZ_WEBM_ENCODER
387 pref("media.encoder.webm.enabled", true);
388 #endif
389 #ifdef MOZ_OMX_ENCODER
390 pref("media.encoder.omx.enabled", true);
391 #endif
392 
393 // Whether to autostart a media element with an |autoplay| attribute
394 pref("media.autoplay.enabled", true);
395 
396 // The default number of decoded video frames that are enqueued in
397 // MediaDecoderReader's mVideoQueue.
398 pref("media.video-queue.default-size", 10);
399 
400 // Whether to disable the video stats to prevent fingerprinting
401 pref("media.video_stats.enabled", true);
402 
403 // Whether to enable the audio writing APIs on the audio element
404 pref("media.audio_data.enabled", false);
405 
406 // Whether to use async panning and zooming
407 pref("layers.async-pan-zoom.enabled", false);
408 
409 // Whether to lock touch scrolling to one axis at a time
410 // 0 = FREE (No locking at all)
411 // 1 = STANDARD (Once locked, remain locked until scrolling ends)
412 // 2 = STICKY (Allow lock to be broken, with hysteresis)
413 pref("apz.axis_lock_mode", 0);
414 
415 // Whether to print the APZC tree for debugging
416 pref("apz.printtree", false);
417 
418 #ifdef XP_MACOSX
419 // Layerize scrollable subframes to allow async panning
420 pref("apz.subframe.enabled", true);
421 pref("apz.fling_repaint_interval", 16);
422 pref("apz.pan_repaint_interval", 16);
423 pref("apz.apz.x_skate_size_multiplier", "2.5");
424 pref("apz.apz.y_skate_size_multiplier", "3.5");
425 #else
426 pref("apz.subframe.enabled", false);
427 #endif
428 
429 // APZ testing (bug 961289)
430 pref("apz.test.logging_enabled", false);
431 
432 #ifdef XP_MACOSX
433 // Whether to run in native HiDPI mode on machines with "Retina"/HiDPI display;
434 //   <= 0 : hidpi mode disabled, display will just use pixel-based upscaling
435 //   == 1 : hidpi supported if all screens share the same backingScaleFactor
436 //   >= 2 : hidpi supported even with mixed backingScaleFactors (somewhat broken)
437 pref("gfx.hidpi.enabled", 2);
438 #endif
439 
440 // Whether to enable LayerScope tool and default listening port
441 pref("gfx.layerscope.enabled", false);
442 pref("gfx.layerscope.port", 23456);
443 
444 // Log severe performance warnings to the error console and profiles.
445 // This should be use to quickly find which slow paths are used by test cases.
446 pref("gfx.perf-warnings.enabled", false);
447 
448 // 0 = Off, 1 = Full, 2 = Tagged Images Only.
449 // See eCMSMode in gfx/thebes/gfxPlatform.h
450 pref("gfx.color_management.mode", 2);
451 pref("gfx.color_management.display_profile", "");
452 pref("gfx.color_management.rendering_intent", 0);
453 pref("gfx.color_management.enablev4", false);
454 
455 pref("gfx.downloadable_fonts.enabled", true);
456 pref("gfx.downloadable_fonts.fallback_delay", 3000);
457 
458 #ifdef ANDROID
459 pref("gfx.bundled_fonts.enabled", true);
460 pref("gfx.bundled_fonts.force-enabled", false);
461 #endif
462 
463 pref("gfx.filter.nearest.force-enabled", false);
464 
465 // prefs controlling the font (name/cmap) loader that runs shortly after startup
466 pref("gfx.font_loader.families_per_slice", 3); // read in info 3 families at a time
467 #ifdef XP_WIN
468 pref("gfx.font_loader.delay", 120000);         // 2 minutes after startup
469 pref("gfx.font_loader.interval", 1000);        // every 1 second until complete
470 #else
471 pref("gfx.font_loader.delay", 8000);           // 8 secs after startup
472 pref("gfx.font_loader.interval", 50);          // run every 50 ms
473 #endif
474 
475 // whether to always search all font cmaps during system font fallback
476 pref("gfx.font_rendering.fallback.always_use_cmaps", false);
477 
478 // cache shaped word results
479 pref("gfx.font_rendering.wordcache.charlimit", 32);
480 
481 // cache shaped word results
482 pref("gfx.font_rendering.wordcache.maxentries", 10000);
483 
484 pref("gfx.font_rendering.graphite.enabled", true);
485 
486 #ifdef XP_WIN
487 pref("gfx.font_rendering.directwrite.enabled", false);
488 pref("gfx.font_rendering.directwrite.use_gdi_table_loading", true);
489 #endif
490 
491 pref("gfx.font_rendering.opentype_svg.enabled", true);
492 
493 #ifdef XP_WIN
494 // comma separated list of backends to use in order of preference
495 // e.g., pref("gfx.canvas.azure.backends", "direct2d,skia,cairo");
496 pref("gfx.canvas.azure.backends", "direct2d,skia,cairo");
497 pref("gfx.content.azure.backends", "direct2d,cairo");
498 #else
499 #ifdef XP_MACOSX
500 pref("gfx.content.azure.backends", "cg");
501 pref("gfx.canvas.azure.backends", "cg");
502 // Accelerated cg canvas where available (10.7+)
503 pref("gfx.canvas.azure.accelerated", false);
504 #else
505 pref("gfx.canvas.azure.backends", "cairo");
506 pref("gfx.content.azure.backends", "cairo");
507 #endif
508 #endif
509 
510 #ifdef MOZ_WIDGET_GTK2
511 pref("gfx.content.azure.backends", "cairo");
512 #endif
513 #ifdef ANDROID
514 pref("gfx.content.azure.backends", "cairo");
515 #endif
516 
517 pref("gfx.work-around-driver-bugs", true);
518 pref("gfx.prefer-mesa-llvmpipe", false);
519 
520 pref("gfx.draw-color-bars", false);
521 
522 pref("accessibility.browsewithcaret", false);
523 pref("accessibility.warn_on_browsewithcaret", true);
524 
525 pref("accessibility.browsewithcaret_shortcut.enabled", true);
526 
527 #ifndef XP_MACOSX
528 // Tab focus model bit field:
529 // 1 focuses text controls, 2 focuses other form elements, 4 adds links.
530 // Most users will want 1, 3, or 7.
531 // On OS X, we use Full Keyboard Access system preference,
532 // unless accessibility.tabfocus is set by the user.
533 pref("accessibility.tabfocus", 7);
534 pref("accessibility.tabfocus_applies_to_xul", false);
535 
536 // On OS X, we follow the "Click in the scrollbar to:" system preference
537 // unless this preference was set manually
538 pref("ui.scrollToClick", 0);
539 
540 #else
541 // Only on mac tabfocus is expected to handle UI widgets as well as web content
542 pref("accessibility.tabfocus_applies_to_xul", true);
543 #endif
544 
545 // provide ability to turn on support for canvas focus rings
546 pref("canvas.focusring.enabled", true);
547 pref("canvas.customfocusring.enabled", false);
548 pref("canvas.hitregions.enabled", false);
549 // Add support for canvas path objects
550 pref("canvas.path.enabled", true);
551 
552 // We want the ability to forcibly disable platform a11y, because
553 // some non-a11y-related components attempt to bring it up.  See bug
554 // 538530 for details about Windows; we have a pref here that allows it
555 // to be disabled for performance and testing resons.
556 // See bug 761589 for the crossplatform aspect.
557 //
558 // This pref is checked only once, and the browser needs a restart to
559 // pick up any changes.
560 //
561 // Values are -1 always on. 1 always off, 0 is auto as some platform perform
562 // further checks.
563 pref("accessibility.force_disabled", 0);
564 
565 #ifdef XP_WIN
566 // Some accessibility tools poke at windows in the plugin process during setup
567 // which can cause hangs.  To hack around this set accessibility.delay_plugins
568 // to true, you can also try increasing accessibility.delay_plugin_time if your
569 // machine is slow and you still experience hangs.
570 // See bug 781791.
571 pref("accessibility.delay_plugins", false);
572 pref("accessibility.delay_plugin_time", 10000);
573 #endif
574 
575 pref("focusmanager.testmode", false);
576 
577 pref("accessibility.usetexttospeech", "");
578 pref("accessibility.usebrailledisplay", "");
579 pref("accessibility.accesskeycausesactivation", true);
580 pref("accessibility.mouse_focuses_formcontrol", false);
581 
582 // Type Ahead Find
583 pref("accessibility.typeaheadfind", true);
584 pref("accessibility.typeaheadfind.autostart", true);
585 // casesensitive: controls the find bar's case-sensitivity
586 //     0 - "never"  (case-insensitive)
587 //     1 - "always" (case-sensitive)
588 // other - "auto"   (case-sensitive for mixed-case input, insensitive otherwise)
589 pref("accessibility.typeaheadfind.casesensitive", 0);
590 pref("accessibility.typeaheadfind.linksonly", true);
591 pref("accessibility.typeaheadfind.startlinksonly", false);
592 pref("accessibility.typeaheadfind.timeout", 4000);
593 pref("accessibility.typeaheadfind.enabletimeout", true);
594 pref("accessibility.typeaheadfind.soundURL", "beep");
595 pref("accessibility.typeaheadfind.enablesound", true);
596 #ifdef XP_MACOSX
597 pref("accessibility.typeaheadfind.prefillwithselection", false);
598 #else
599 pref("accessibility.typeaheadfind.prefillwithselection", true);
600 #endif
601 pref("accessibility.typeaheadfind.matchesCountTimeout", 250);
602 pref("accessibility.typeaheadfind.matchesCountLimit", 100);
603 
604 // use Mac OS X Appearance panel text smoothing setting when rendering text, disabled by default
605 pref("gfx.use_text_smoothing_setting", false);
606 
607 // Number of characters to consider emphasizing for rich autocomplete results
608 pref("toolkit.autocomplete.richBoundaryCutoff", 200);
609 
610 // Variable controlling logging for osfile.
611 pref("toolkit.osfile.log", false);
612 
613 pref("toolkit.scrollbox.smoothScroll", true);
614 pref("toolkit.scrollbox.scrollIncrement", 20);
615 pref("toolkit.scrollbox.verticalScrollDistance", 3);
616 pref("toolkit.scrollbox.horizontalScrollDistance", 5);
617 pref("toolkit.scrollbox.clickToScroll.scrollDelay", 150);
618 
619 pref("toolkit.telemetry.server", "https://incoming.telemetry.mozilla.org");
620 // Telemetry server owner. Please change if you set toolkit.telemetry.server to a different server
621 pref("toolkit.telemetry.server_owner", "Mozilla");
622 // Information page about telemetry (temporary ; will be about:telemetry in the end)
623 pref("toolkit.telemetry.infoURL", "https://www.mozilla.org/legal/privacy/firefox.html#telemetry");
624 // Determines whether full SQL strings are returned when they might contain sensitive info
625 // i.e. dynamically constructed SQL strings or SQL executed by addons against addon DBs
626 pref("toolkit.telemetry.debugSlowSql", false);
627 
628 // Identity module
629 pref("toolkit.identity.enabled", false);
630 pref("toolkit.identity.debug", false);
631 
632 // AsyncShutdown delay before crashing in case of shutdown freeze
633 pref("toolkit.asyncshutdown.timeout.crash", 60000);
634 
635 // Enable deprecation warnings.
636 pref("devtools.errorconsole.deprecation_warnings", true);
637 
638 // Disable debugging chrome
639 pref("devtools.chrome.enabled", false);
640 
641 // Disable remote debugging protocol logging
642 pref("devtools.debugger.log", false);
643 // Disable remote debugging connections
644 pref("devtools.debugger.remote-enabled", false);
645 pref("devtools.debugger.remote-port", 6000);
646 // Force debugger server binding on the loopback interface
647 pref("devtools.debugger.force-local", true);
648 // Display a prompt when a new connection starts to accept/reject it
649 pref("devtools.debugger.prompt-connection", true);
650 // Block tools from seeing / interacting with certified apps
651 pref("devtools.debugger.forbid-certified-apps", true);
652 
653 // DevTools default color unit
654 pref("devtools.defaultColorUnit", "hex");
655 
656 // Used for devtools debugging
657 pref("devtools.dump.emit", false);
658 
659 // Disable device discovery logging
660 pref("devtools.discovery.log", false);
661 // Disable scanning for DevTools devices via WiFi
662 pref("devtools.remote.wifi.scan", false);
663 // Hide UI options for controlling device visibility over WiFi
664 // N.B.: This does not set whether the device can be discovered via WiFi, only
665 // whether the UI control to make such a choice is shown to the user
666 pref("devtools.remote.wifi.visible", false);
667 
668 // view source
669 pref("view_source.syntax_highlight", true);
670 pref("view_source.wrap_long_lines", false);
671 pref("view_source.editor.external", false);
672 pref("view_source.editor.path", "");
673 // allows to add further arguments to the editor; use the %LINE% placeholder
674 // for jumping to a specific line (e.g. "/line:%LINE%" or "--goto %LINE%")
675 pref("view_source.editor.args", "");
676 
677 // When true this will word-wrap plain text documents.
678 pref("plain_text.wrap_long_lines", false);
679 
680 // whether or not to draw images while dragging
681 pref("nglayout.enable_drag_images", true);
682 
683 // enable/disable paint flashing --- useful for debugging
684 // the first one applies to everything, the second one only to chrome
685 pref("nglayout.debug.paint_flashing", false);
686 pref("nglayout.debug.paint_flashing_chrome", false);
687 
688 // enable/disable widget update area flashing --- only supported with
689 // BasicLayers (other layer managers always update the entire widget area)
690 pref("nglayout.debug.widget_update_flashing", false);
691 
692 // Whether image visibility is enabled globally (ie we will try to unlock images
693 // that are not visible).
694 pref("layout.imagevisibility.enabled", true);
695 // Whether image visibility is enabled in documents that are within a browser
696 // element as defined by nsDocShell::FrameType and GetInheritedFrameType. This
697 // pref only has an effect if layout.imagevisibility.enabled is false.
698 pref("layout.imagevisibility.enabled_for_browser_elements_only", false);
699 pref("layout.imagevisibility.numscrollportwidths", 0);
700 pref("layout.imagevisibility.numscrollportheights", 1);
701 
702 // scrollbar snapping region
703 // 0 - off
704 // 1 and higher - slider thickness multiple
705 pref("slider.snapMultiplier", 0);
706 
707 // option to choose plug-in finder
708 pref("application.use_ns_plugin_finder", false);
709 
710 // URI fixup prefs
711 pref("browser.fixup.alternate.enabled", true);
712 pref("browser.fixup.alternate.prefix", "www.");
713 pref("browser.fixup.alternate.suffix", ".com");
714 pref("browser.fixup.hide_user_pass", true);
715 
716 // Location Bar AutoComplete
717 pref("browser.urlbar.autocomplete.enabled", true);
718 
719 // Print header customization
720 // Use the following codes:
721 // &T - Title
722 // &U - Document URL
723 // &D - Date/Time
724 // &P - Page Number
725 // &PT - Page Number "of" Page total
726 // Set each header to a string containing zero or one of these codes
727 // and the code will be replaced in that string by the corresponding data
728 pref("print.print_headerleft", "&T");
729 pref("print.print_headercenter", "");
730 pref("print.print_headerright", "&U");
731 pref("print.print_footerleft", "&PT");
732 pref("print.print_footercenter", "");
733 pref("print.print_footerright", "&D");
734 pref("print.show_print_progress", true);
735 
736 // xxxbsmedberg: more toolkit prefs
737 
738 // When this is set to false each window has its own PrintSettings
739 // and a change in one window does not affect the others
740 pref("print.use_global_printsettings", true);
741 
742 // Save the Printings after each print job
743 pref("print.save_print_settings", true);
744 
745 // Cache old Presentation when going into Print Preview
746 pref("print.always_cache_old_pres", false);
747 
748 // Enables you to specify the amount of the paper that is to be treated
749 // as unwriteable.  The print_edge_XXX and print_margin_XXX preferences
750 // are treated as offsets that are added to this pref.
751 // Default is "-1", which means "use the system default".  (If there is
752 // no system default, then the -1 is treated as if it were 0.)
753 // This is used by both Printing and Print Preview.
754 // Units are in 1/100ths of an inch.
755 pref("print.print_unwriteable_margin_top",    -1);
756 pref("print.print_unwriteable_margin_left",   -1);
757 pref("print.print_unwriteable_margin_right",  -1);
758 pref("print.print_unwriteable_margin_bottom", -1);
759 
760 // Enables you to specify the gap from the edge of the paper's
761 // unwriteable area to the margin.
762 // This is used by both Printing and Print Preview
763 // Units are in 1/100ths of an inch.
764 pref("print.print_edge_top", 0);
765 pref("print.print_edge_left", 0);
766 pref("print.print_edge_right", 0);
767 pref("print.print_edge_bottom", 0);
768 
769 // Pref used by the spellchecker extension to control the
770 // maximum number of misspelled words that will be underlined
771 // in a document.
772 pref("extensions.spellcheck.inline.max-misspellings", 500);
773 
774 // Prefs used by libeditor. Prefs specific to seamonkey composer
775 // belong in comm-central/editor/ui/composer.js
776 
777 pref("editor.use_custom_colors", false);
778 pref("editor.singleLine.pasteNewlines",      2);
779 pref("editor.use_css",                       false);
780 pref("editor.css.default_length_unit",       "px");
781 pref("editor.resizing.preserve_ratio",       true);
782 pref("editor.positioning.offset",            0);
783 
784 // Scripts & Windows prefs
785 pref("dom.disable_beforeunload",            false);
786 pref("dom.disable_image_src_set",           false);
787 pref("dom.disable_window_flip",             false);
788 pref("dom.disable_window_move_resize",      false);
789 pref("dom.disable_window_status_change",    false);
790 
791 pref("dom.disable_window_open_feature.titlebar",    false);
792 pref("dom.disable_window_open_feature.close",       false);
793 pref("dom.disable_window_open_feature.toolbar",     false);
794 pref("dom.disable_window_open_feature.location",    false);
795 pref("dom.disable_window_open_feature.personalbar", false);
796 pref("dom.disable_window_open_feature.menubar",     false);
797 pref("dom.disable_window_open_feature.scrollbars",  false);
798 pref("dom.disable_window_open_feature.resizable",   true);
799 pref("dom.disable_window_open_feature.minimizable", false);
800 pref("dom.disable_window_open_feature.status",      true);
801 
802 pref("dom.allow_scripts_to_close_windows",          false);
803 
804 pref("dom.disable_open_during_load",                false);
805 pref("dom.popup_maximum",                           20);
806 pref("dom.popup_allowed_events", "change click dblclick mouseup reset submit touchend");
807 pref("dom.disable_open_click_delay", 1000);
808 
809 pref("dom.storage.enabled", true);
810 pref("dom.storage.default_quota",      5120);
811 
812 pref("dom.send_after_paint_to_content", false);
813 
814 // Timeout clamp in ms for timeouts we clamp
815 pref("dom.min_timeout_value", 4);
816 // And for background windows
817 pref("dom.min_background_timeout_value", 1000);
818 
819 // Don't use new input types
820 pref("dom.experimental_forms", false);
821 
822 // Enable <input type=number>:
823 pref("dom.forms.number", true);
824 
825 // Enable <input type=color> by default. It will be turned off for remaining
826 // platforms which don't have a color picker implemented yet.
827 pref("dom.forms.color", true);
828 
829 // Support for new @autocomplete values
830 pref("dom.forms.autocomplete.experimental", false);
831 
832 // Enables requestAutocomplete DOM API on forms.
833 pref("dom.forms.requestAutocomplete", false);
834 
835 // Enables system messages and activities
836 pref("dom.sysmsg.enabled", false);
837 
838 // Enable pre-installed applications.
839 pref("dom.webapps.useCurrentProfile", false);
840 
841 pref("dom.cycle_collector.incremental", true);
842 
843 pref("dom.window_experimental_bindings", true);
844 
845 // Parsing perf prefs. For now just mimic what the old code did.
846 #ifndef XP_WIN
847 pref("content.sink.pending_event_mode", 0);
848 #endif
849 
850 // Disable popups from plugins by default
851 //   0 = openAllowed
852 //   1 = openControlled
853 //   2 = openAbused
854 pref("privacy.popups.disable_from_plugins", 2);
855 
856 // "do not track" HTTP header, disabled by default
857 pref("privacy.donottrackheader.enabled",    false);
858 //   0 = tracking is acceptable
859 //   1 = tracking is unacceptable
860 pref("privacy.donottrackheader.value",      1);
861 // Enforce tracking protection
862 pref("privacy.trackingprotection.enabled",  false);
863 
864 pref("dom.event.contextmenu.enabled",       true);
865 pref("dom.event.clipboardevents.enabled",   true);
866 #if defined(XP_WIN) && !defined(RELEASE_BUILD)
867 pref("dom.event.highrestimestamp.enabled",  true);
868 #else
869 pref("dom.event.highrestimestamp.enabled",  false);
870 #endif
871 
872 pref("dom.webcomponents.enabled",           false);
873 
874 pref("javascript.enabled",                  true);
875 pref("javascript.options.strict",           false);
876 #ifdef DEBUG
877 pref("javascript.options.strict.debug",     true);
878 #endif
879 pref("javascript.options.baselinejit",      true);
880 pref("javascript.options.ion",              true);
881 pref("javascript.options.asmjs",            true);
882 pref("javascript.options.native_regexp",    true);
883 pref("javascript.options.parallel_parsing", true);
884 pref("javascript.options.ion.offthread_compilation", true);
885 // This preference instructs the JS engine to discard the
886 // source of any privileged JS after compilation. This saves
887 // memory, but makes things like Function.prototype.toSource()
888 // fail.
889 pref("javascript.options.discardSystemSource", false);
890 // This preference limits the memory usage of javascript.
891 // If you want to change these values for your device,
892 // please find Bug 417052 comment 17 and Bug 456721
893 // Comment 32 and Bug 613551.
894 pref("javascript.options.mem.high_water_mark", 128);
895 pref("javascript.options.mem.max", -1);
896 pref("javascript.options.mem.gc_per_compartment", true);
897 pref("javascript.options.mem.gc_incremental", true);
898 pref("javascript.options.mem.gc_incremental_slice_ms", 10);
899 pref("javascript.options.mem.log", false);
900 pref("javascript.options.mem.notify", false);
901 pref("javascript.options.gc_on_memory_pressure", true);
902 
903 pref("javascript.options.mem.gc_high_frequency_time_limit_ms", 1000);
904 pref("javascript.options.mem.gc_high_frequency_low_limit_mb", 100);
905 pref("javascript.options.mem.gc_high_frequency_high_limit_mb", 500);
906 pref("javascript.options.mem.gc_high_frequency_heap_growth_max", 300);
907 pref("javascript.options.mem.gc_high_frequency_heap_growth_min", 150);
908 pref("javascript.options.mem.gc_low_frequency_heap_growth", 150);
909 pref("javascript.options.mem.gc_dynamic_heap_growth", true);
910 pref("javascript.options.mem.gc_dynamic_mark_slice", true);
911 pref("javascript.options.mem.gc_allocation_threshold_mb", 30);
912 pref("javascript.options.mem.gc_decommit_threshold_mb", 32);
913 #ifdef JSGC_GENERATIONAL
914 pref("javascript.options.mem.gc_min_empty_chunk_count", 1);
915 #else
916 pref("javascript.options.mem.gc_min_empty_chunk_count", 0);
917 #endif
918 pref("javascript.options.mem.gc_max_empty_chunk_count", 30);
919 
920 pref("javascript.options.showInConsole", false);
921 
922 // advanced prefs
923 pref("advanced.mailftp",                    false);
924 pref("image.animation_mode",                "normal");
925 
926 // Same-origin policy for file URIs, "false" is traditional
927 pref("security.fileuri.strict_origin_policy", true);
928 
929 // If there is ever a security firedrill that requires
930 // us to block certian ports global, this is the pref
931 // to use.  Is is a comma delimited list of port numbers
932 // for example:
933 //   pref("network.security.ports.banned", "1,2,3,4,5");
934 // prevents necko connecting to ports 1-5 unless the protocol
935 // overrides.
936 
937 // Allow necko to do A/B testing. Will generally only happen if
938 // telemetry is also enabled as otherwise there is no way to report
939 // the results
940 pref("network.allow-experiments", true);
941 
942 // Transmit UDP busy-work to the LAN when anticipating low latency
943 // network reads and on wifi to mitigate 802.11 Power Save Polling delays
944 pref("network.tickle-wifi.enabled", false);
945 pref("network.tickle-wifi.duration", 400);
946 pref("network.tickle-wifi.delay", 16);
947 
948 // Turn off interprocess security checks. Needed to run xpcshell tests.
949 pref("network.disable.ipc.security", false);
950 
951 // Default action for unlisted external protocol handlers
952 pref("network.protocol-handler.external-default", true);      // OK to load
953 pref("network.protocol-handler.warn-external-default", true); // warn before load
954 
955 // Prevent using external protocol handlers for these schemes
956 pref("network.protocol-handler.external.hcp", false);
957 pref("network.protocol-handler.external.vbscript", false);
958 pref("network.protocol-handler.external.javascript", false);
959 pref("network.protocol-handler.external.data", false);
960 pref("network.protocol-handler.external.ms-help", false);
961 pref("network.protocol-handler.external.shell", false);
962 pref("network.protocol-handler.external.vnd.ms.radio", false);
963 #ifdef XP_MACOSX
964 pref("network.protocol-handler.external.help", false);
965 #endif
966 pref("network.protocol-handler.external.disk", false);
967 pref("network.protocol-handler.external.disks", false);
968 pref("network.protocol-handler.external.afp", false);
969 pref("network.protocol-handler.external.moz-icon", false);
970 
971 // Don't allow  external protocol handlers for common typos
972 pref("network.protocol-handler.external.ttp", false);  // http
973 pref("network.protocol-handler.external.ttps", false); // https
974 pref("network.protocol-handler.external.tps", false);  // https
975 pref("network.protocol-handler.external.ps", false);   // https
976 pref("network.protocol-handler.external.ile", false);  // file
977 pref("network.protocol-handler.external.le", false);   // file
978 
979 // An exposed protocol handler is one that can be used in all contexts.  A
980 // non-exposed protocol handler is one that can only be used internally by the
981 // application.  For example, a non-exposed protocol would not be loaded by the
982 // application in response to a link click or a X-remote openURL command.
983 // Instead, it would be deferred to the system's external protocol handler.
984 // Only internal/built-in protocol handlers can be marked as exposed.
985 
986 // This pref controls the default settings.  Per protocol settings can be used
987 // to override this value.
988 pref("network.protocol-handler.expose-all", true);
989 
990 // Warning for about:networking page
991 pref("network.warnOnAboutNetworking", true);
992 
993 // Example: make IMAP an exposed protocol
994 // pref("network.protocol-handler.expose.imap", true);
995 
996 // <http>
997 pref("network.http.version", "1.1");      // default
998 // pref("network.http.version", "1.0");   // uncomment this out in case of problems
999 // pref("network.http.version", "0.9");   // it'll work too if you're crazy
1000 // keep-alive option is effectively obsolete. Nevertheless it'll work with
1001 // some older 1.0 servers:
1002 
1003 pref("network.http.proxy.version", "1.1");    // default
1004 // pref("network.http.proxy.version", "1.0"); // uncomment this out in case of problems
1005                                               // (required if using junkbuster proxy)
1006 
1007 // enable caching of http documents
1008 pref("network.http.use-cache", true);
1009 
1010 // this preference can be set to override the socket type used for normal
1011 // HTTP traffic.  an empty value indicates the normal TCP/IP socket type.
1012 pref("network.http.default-socket-type", "");
1013 
1014 // There is a problem with some IIS7 servers that don't close the connection
1015 // properly after it times out (bug #491541). Default timeout on IIS7 is
1016 // 120 seconds. We need to reuse or drop the connection within this time.
1017 // We set the timeout a little shorter to keep a reserve for cases when
1018 // the packet is lost or delayed on the route.
1019 pref("network.http.keep-alive.timeout", 115);
1020 
1021 // Timeout connections if an initial response is not received after 5 mins.
1022 pref("network.http.response.timeout", 300);
1023 
1024 // Limit the absolute number of http connections.
1025 // Note: the socket transport service will clamp the number below 256 if the OS
1026 // cannot allocate that many FDs, and it also always tries to reserve up to 250
1027 // file descriptors for things other than sockets.
1028 pref("network.http.max-connections", 256);
1029 
1030 // If NOT connecting via a proxy, then
1031 // a new connection will only be attempted if the number of active persistent
1032 // connections to the server is less then max-persistent-connections-per-server.
1033 pref("network.http.max-persistent-connections-per-server", 6);
1034 
1035 // If connecting via a proxy, then a
1036 // new connection will only be attempted if the number of active persistent
1037 // connections to the proxy is less then max-persistent-connections-per-proxy.
1038 pref("network.http.max-persistent-connections-per-proxy", 32);
1039 
1040 // amount of time (in seconds) to suspend pending requests, before spawning a
1041 // new connection, once the limit on the number of persistent connections per
1042 // host has been reached.  however, a new connection will not be created if
1043 // max-connections or max-connections-per-server has also been reached.
1044 pref("network.http.request.max-start-delay", 10);
1045 
1046 // Headers
1047 pref("network.http.accept.default", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
1048 
1049 // Prefs allowing granular control of referers
1050 // 0=don't send any, 1=send only on clicks, 2=send on image requests as well
1051 pref("network.http.sendRefererHeader",      2);
1052 // false=real referer, true=spoof referer (use target URI as referer)
1053 pref("network.http.referer.spoofSource", false);
1054 // 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port
1055 pref("network.http.referer.trimmingPolicy", 0);
1056 // 0=always send, 1=send iff base domains match, 2=send iff hosts match
1057 pref("network.http.referer.XOriginPolicy", 0);
1058 
1059 // Controls whether we send HTTPS referres to other HTTPS sites.
1060 // By default this is enabled for compatibility (see bug 141641)
1061 pref("network.http.sendSecureXSiteReferrer", true);
1062 
1063 // Maximum number of consecutive redirects before aborting.
1064 pref("network.http.redirection-limit", 20);
1065 
1066 // Enable http compression: comment this out in case of problems with 1.1
1067 // NOTE: support for "compress" has been disabled per bug 196406.
1068 // NOTE: separate values with comma+space (", "): see bug 576033
1069 pref("network.http.accept-encoding", "gzip, deflate");
1070 
1071 pref("network.http.pipelining"      , false);
1072 pref("network.http.pipelining.ssl"  , false); // disable pipelining over SSL
1073 pref("network.http.pipelining.abtest", false);
1074 pref("network.http.proxy.pipelining", false);
1075 
1076 // Max number of requests in the pipeline
1077 pref("network.http.pipelining.maxrequests" , 32);
1078 
1079 // An optimistic request is one pipelined when policy might allow a new
1080 // connection instead
1081 pref("network.http.pipelining.max-optimistic-requests" , 4);
1082 
1083 pref("network.http.pipelining.aggressive", false);
1084 pref("network.http.pipelining.maxsize" , 300000);
1085 pref("network.http.pipelining.reschedule-on-timeout", true);
1086 pref("network.http.pipelining.reschedule-timeout", 1500);
1087 
1088 // The read-timeout is a ms timer that causes the transaction to be completely
1089 // restarted without pipelining.
1090 pref("network.http.pipelining.read-timeout", 30000);
1091 
1092 // Prompt for redirects resulting in unsafe HTTP requests
1093 pref("network.http.prompt-temp-redirect", false);
1094 
1095 // If true generate CORRUPTED_CONTENT errors for entities that
1096 // contain an invalid Assoc-Req response header
1097 pref("network.http.assoc-req.enforce", false);
1098 
1099 // On networks deploying QoS, it is recommended that these be lockpref()'d,
1100 // since inappropriate marking can easily overwhelm bandwidth reservations
1101 // for certain services (i.e. EF for VoIP, AF4x for interactive video,
1102 // AF3x for broadcast/streaming video, etc)
1103 
1104 // default value for HTTP
1105 // in a DSCP environment this should be 40 (0x28, or AF11), per RFC-4594,
1106 // Section 4.8 "High-Throughput Data Service Class"
1107 pref("network.http.qos", 0);
1108 
1109 // The number of milliseconds after sending a SYN for an HTTP connection,
1110 // to wait before trying a different connection. 0 means do not use a second
1111 // connection.
1112 pref("network.http.connection-retry-timeout", 250);
1113 
1114 // The number of seconds after sending initial SYN for an HTTP connection
1115 // to give up if the OS does not give up first
1116 pref("network.http.connection-timeout", 90);
1117 
1118 // The maximum number of current global half open sockets allowable
1119 // when starting a new speculative connection.
1120 pref("network.http.speculative-parallel-limit", 6);
1121 
1122 // Whether or not to block requests for non head js/css items (e.g. media)
1123 // while those elements load.
1124 pref("network.http.rendering-critical-requests-prioritization", true);
1125 
1126 // Disable IPv6 for backup connections to workaround problems about broken
1127 // IPv6 connectivity.
1128 pref("network.http.fast-fallback-to-IPv4", true);
1129 
1130 // The maximum amount of time the cache session lock can be held
1131 // before a new transaction bypasses the cache. In milliseconds.
1132 #ifdef RELEASE_BUILD
1133 pref("network.http.bypass-cachelock-threshold", 200000);
1134 #else
1135 pref("network.http.bypass-cachelock-threshold", 250);
1136 #endif
1137 
1138 // Try and use SPDY when using SSL
1139 pref("network.http.spdy.enabled", true);
1140 pref("network.http.spdy.enabled.v3", true);
1141 pref("network.http.spdy.enabled.v3-1", true);
1142 pref("network.http.spdy.enabled.http2draft", false);
1143 pref("network.http.spdy.enforce-tls-profile", true);
1144 pref("network.http.spdy.chunk-size", 16000);
1145 pref("network.http.spdy.timeout", 180);
1146 pref("network.http.spdy.coalesce-hostnames", true);
1147 pref("network.http.spdy.persistent-settings", false);
1148 pref("network.http.spdy.ping-threshold", 58);
1149 pref("network.http.spdy.ping-timeout", 8);
1150 pref("network.http.spdy.send-buffer-size", 131072);
1151 pref("network.http.spdy.allow-push", true);
1152 pref("network.http.spdy.push-allowance", 131072);
1153 
1154 pref("network.http.diagnostics", false);
1155 
1156 pref("network.http.pacing.requests.enabled", true);
1157 pref("network.http.pacing.requests.min-parallelism", 6);
1158 pref("network.http.pacing.requests.hz", 100);
1159 pref("network.http.pacing.requests.burst", 32);
1160 
1161 // TCP Keepalive config for HTTP connections.
1162 pref("network.http.tcp_keepalive.short_lived_connections", true);
1163 // Max time from initial request during which conns are considered short-lived.
1164 pref("network.http.tcp_keepalive.short_lived_time", 60);
1165 // Idle time of TCP connection until first keepalive probe sent.
1166 pref("network.http.tcp_keepalive.short_lived_idle_time", 10);
1167 
1168 pref("network.http.tcp_keepalive.long_lived_connections", true);
1169 pref("network.http.tcp_keepalive.long_lived_idle_time", 600);
1170 
1171 // default values for FTP
1172 // in a DSCP environment this should be 40 (0x28, or AF11), per RFC-4594,
1173 // Section 4.8 "High-Throughput Data Service Class", and 80 (0x50, or AF22)
1174 // per Section 4.7 "Low-Latency Data Service Class".
1175 pref("network.ftp.data.qos", 0);
1176 pref("network.ftp.control.qos", 0);
1177 
1178 // </http>
1179 
1180 // <ws>: WebSocket
1181 pref("network.websocket.enabled", true);
1182 
1183 // 2147483647 == PR_INT32_MAX == ~2 GB
1184 pref("network.websocket.max-message-size", 2147483647);
1185 
1186 // Should we automatically follow http 3xx redirects during handshake
1187 pref("network.websocket.auto-follow-http-redirects", false);
1188 
1189 // the number of seconds to wait for websocket connection to be opened
1190 pref("network.websocket.timeout.open", 20);
1191 
1192 // the number of seconds to wait for a clean close after sending the client
1193 // close message
1194 pref("network.websocket.timeout.close", 20);
1195 
1196 // the number of seconds of idle read activity to sustain before sending a
1197 // ping probe. 0 to disable.
1198 pref("network.websocket.timeout.ping.request", 0);
1199 
1200 // the deadline, expressed in seconds, for some read activity to occur after
1201 // generating a ping. If no activity happens then an error and unclean close
1202 // event is sent to the javascript websockets application
1203 pref("network.websocket.timeout.ping.response", 10);
1204 
1205 // Defines whether or not to try and negotiate the stream-deflate compression
1206 // extension with the websocket server. Stream-Deflate has been removed from
1207 // the standards track document, but can still be used by servers who opt
1208 // into it.
1209 pref("network.websocket.extensions.stream-deflate", false);
1210 
1211 // the maximum number of concurrent websocket sessions. By specification there
1212 // is never more than one handshake oustanding to an individual host at
1213 // one time.
1214 pref("network.websocket.max-connections", 200);
1215 
1216 // by default scripts loaded from a https:// origin can only open secure
1217 // (i.e. wss://) websockets.
1218 pref("network.websocket.allowInsecureFromHTTPS", false);
1219 
1220 // by default we delay websocket reconnects to same host/port if previous
1221 // connection failed, per RFC 6455 section 7.2.3
1222 pref("network.websocket.delay-failed-reconnects", true);
1223 
1224 // </ws>
1225 
1226 // Server-Sent Events
1227 
1228 pref("dom.server-events.enabled", true);
1229 // Equal to the DEFAULT_RECONNECTION_TIME_VALUE value in nsEventSource.cpp
1230 pref("dom.server-events.default-reconnection-time", 5000); // in milliseconds
1231 
1232 // If false, remote JAR files that are served with a content type other than
1233 // application/java-archive or application/x-jar will not be opened
1234 // by the jar channel.
1235 pref("network.jar.open-unsafe-types", false);
1236 
1237 // This preference, if true, causes all UTF-8 domain names to be normalized to
1238 // punycode.  The intention is to allow UTF-8 domain names as input, but never
1239 // generate them from punycode.
1240 pref("network.IDN_show_punycode", false);
1241 
1242 // If "network.IDN.use_whitelist" is set to true, TLDs with
1243 // "network.IDN.whitelist.tld" explicitly set to true are treated as
1244 // IDN-safe. Otherwise, they're treated as unsafe and punycode will be used
1245 // for displaying them in the UI (e.g. URL bar), unless they conform to one of
1246 // the profiles specified in
1247 // http://www.unicode.org/reports/tr36/proposed.html#Security_Levels_and_Alerts
1248 // If "network.IDN.restriction_profile" is "high", the Highly Restrictive
1249 // profile is used.
1250 // If "network.IDN.restriction_profile" is "moderate", the Moderately
1251 // Restrictive profile is used.
1252 // In all other cases, the ASCII-Only profile is used.
1253 // Note that these preferences are referred to ONLY when
1254 // "network.IDN_show_punycode" is false. In other words, all IDNs will be shown
1255 // in punycode if "network.IDN_show_punycode" is true.
1256 pref("network.IDN.restriction_profile", "moderate");
1257 pref("network.IDN.use_whitelist", true);
1258 
1259 // ccTLDs
1260 pref("network.IDN.whitelist.ac", true);
1261 pref("network.IDN.whitelist.ar", true);
1262 pref("network.IDN.whitelist.at", true);
1263 pref("network.IDN.whitelist.br", true);
1264 pref("network.IDN.whitelist.ca", true);
1265 pref("network.IDN.whitelist.ch", true);
1266 pref("network.IDN.whitelist.cl", true);
1267 pref("network.IDN.whitelist.cn", true);
1268 pref("network.IDN.whitelist.de", true);
1269 pref("network.IDN.whitelist.dk", true);
1270 pref("network.IDN.whitelist.ee", true);
1271 pref("network.IDN.whitelist.es", true);
1272 pref("network.IDN.whitelist.fi", true);
1273 pref("network.IDN.whitelist.fr", true);
1274 pref("network.IDN.whitelist.gr", true);
1275 pref("network.IDN.whitelist.gt", true);
1276 pref("network.IDN.whitelist.hu", true);
1277 pref("network.IDN.whitelist.il", true);
1278 pref("network.IDN.whitelist.io", true);
1279 pref("network.IDN.whitelist.ir", true);
1280 pref("network.IDN.whitelist.is", true);
1281 pref("network.IDN.whitelist.jp", true);
1282 pref("network.IDN.whitelist.kr", true);
1283 pref("network.IDN.whitelist.li", true);
1284 pref("network.IDN.whitelist.lt", true);
1285 pref("network.IDN.whitelist.lu", true);
1286 pref("network.IDN.whitelist.lv", true);
1287 pref("network.IDN.whitelist.no", true);
1288 pref("network.IDN.whitelist.nu", true);
1289 pref("network.IDN.whitelist.nz", true);
1290 pref("network.IDN.whitelist.pl", true);
1291 pref("network.IDN.whitelist.pm", true);
1292 pref("network.IDN.whitelist.pr", true);
1293 pref("network.IDN.whitelist.re", true);
1294 pref("network.IDN.whitelist.se", true);
1295 pref("network.IDN.whitelist.sh", true);
1296 pref("network.IDN.whitelist.si", true);
1297 pref("network.IDN.whitelist.tf", true);
1298 pref("network.IDN.whitelist.th", true);
1299 pref("network.IDN.whitelist.tm", true);
1300 pref("network.IDN.whitelist.tw", true);
1301 pref("network.IDN.whitelist.ua", true);
1302 pref("network.IDN.whitelist.vn", true);
1303 pref("network.IDN.whitelist.wf", true);
1304 pref("network.IDN.whitelist.yt", true);
1305 
1306 // IDN ccTLDs
1307 // ae, UAE, .<Emarat>
1308 pref("network.IDN.whitelist.xn--mgbaam7a8h", true);
1309 // cn, China, .<China> with variants
1310 pref("network.IDN.whitelist.xn--fiqz9s", true); // Traditional
1311 pref("network.IDN.whitelist.xn--fiqs8s", true); // Simplified
1312 // eg, Egypt, .<Masr>
1313 pref("network.IDN.whitelist.xn--wgbh1c", true);
1314 // hk, Hong Kong, .<Hong Kong>
1315 pref("network.IDN.whitelist.xn--j6w193g", true);
1316 // ir, Iran, <.Iran> with variants
1317 pref("network.IDN.whitelist.xn--mgba3a4f16a", true);
1318 pref("network.IDN.whitelist.xn--mgba3a4fra", true);
1319 // jo, Jordan, .<Al-Ordon>
1320 pref("network.IDN.whitelist.xn--mgbayh7gpa", true);
1321 // lk, Sri Lanka, .<Lanka> and .<Ilangai>
1322 pref("network.IDN.whitelist.xn--fzc2c9e2c", true);
1323 pref("network.IDN.whitelist.xn--xkc2al3hye2a", true);
1324 // qa, Qatar, .<Qatar>
1325 pref("network.IDN.whitelist.xn--wgbl6a", true);
1326 // rs, Serbia, .<Srb>
1327 pref("network.IDN.whitelist.xn--90a3ac", true);
1328 // ru, Russian Federation, .<RF>
1329 pref("network.IDN.whitelist.xn--p1ai", true);
1330 // sa, Saudi Arabia, .<al-Saudiah> with variants
1331 pref("network.IDN.whitelist.xn--mgberp4a5d4ar", true);
1332 pref("network.IDN.whitelist.xn--mgberp4a5d4a87g", true);
1333 pref("network.IDN.whitelist.xn--mgbqly7c0a67fbc", true);
1334 pref("network.IDN.whitelist.xn--mgbqly7cvafr", true);
1335 // sy, Syria, .<Souria>
1336 pref("network.IDN.whitelist.xn--ogbpf8fl", true);
1337 // th, Thailand, .<Thai>
1338 pref("network.IDN.whitelist.xn--o3cw4h", true);
1339 // tw, Taiwan, <.Taiwan> with variants
1340 pref("network.IDN.whitelist.xn--kpry57d", true);  // Traditional
1341 pref("network.IDN.whitelist.xn--kprw13d", true);  // Simplified
1342 
1343 // gTLDs
1344 pref("network.IDN.whitelist.asia", true);
1345 pref("network.IDN.whitelist.biz", true);
1346 pref("network.IDN.whitelist.cat", true);
1347 pref("network.IDN.whitelist.info", true);
1348 pref("network.IDN.whitelist.museum", true);
1349 pref("network.IDN.whitelist.org", true);
1350 pref("network.IDN.whitelist.tel", true);
1351 
1352 // NOTE: Before these can be removed, one of bug 414812's tests must be updated
1353 //       or it will likely fail!  Please CC jwalden+bmo on the bug associated
1354 //       with removing these so he can provide a patch to make the necessary
1355 //       changes to avoid bustage.
1356 // ".test" localised TLDs for ICANN's top-level IDN trial
1357 pref("network.IDN.whitelist.xn--0zwm56d", true);
1358 pref("network.IDN.whitelist.xn--11b5bs3a9aj6g", true);
1359 pref("network.IDN.whitelist.xn--80akhbyknj4f", true);
1360 pref("network.IDN.whitelist.xn--9t4b11yi5a", true);
1361 pref("network.IDN.whitelist.xn--deba0ad", true);
1362 pref("network.IDN.whitelist.xn--g6w251d", true);
1363 pref("network.IDN.whitelist.xn--hgbk6aj7f53bba", true);
1364 pref("network.IDN.whitelist.xn--hlcj6aya9esc7a", true);
1365 pref("network.IDN.whitelist.xn--jxalpdlp", true);
1366 pref("network.IDN.whitelist.xn--kgbechtv", true);
1367 pref("network.IDN.whitelist.xn--zckzah", true);
1368 
1369 // If a domain includes any of the following characters, it may be a spoof
1370 // attempt and so we always display the domain name as punycode. This would
1371 // override the settings "network.IDN_show_punycode" and
1372 // "network.IDN.whitelist.*".
1373 pref("network.IDN.blacklist_chars", "\u0020\u00A0\u00BC\u00BD\u00BE\u01C3\u02D0\u0337\u0338\u0589\u05C3\u05F4\u0609\u060A\u066A\u06D4\u0701\u0702\u0703\u0704\u115F\u1160\u1735\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u200B\u2024\u2027\u2028\u2029\u202F\u2039\u203A\u2041\u2044\u2052\u205F\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215A\u215B\u215C\u215D\u215E\u215F\u2215\u2236\u23AE\u2571\u29F6\u29F8\u2AFB\u2AFD\u2FF0\u2FF1\u2FF2\u2FF3\u2FF4\u2FF5\u2FF6\u2FF7\u2FF8\u2FF9\u2FFA\u2FFB\u3000\u3002\u3014\u3015\u3033\u3164\u321D\u321E\u33AE\u33AF\u33C6\u33DF\uA789\uFE14\uFE15\uFE3F\uFE5D\uFE5E\uFEFF\uFF0E\uFF0F\uFF61\uFFA0\uFFF9\uFFFA\uFFFB\uFFFC\uFFFD");
1374 
1375 // This preference specifies a list of domains for which DNS lookups will be
1376 // IPv4 only. Works around broken DNS servers which can't handle IPv6 lookups
1377 // and/or allows the user to disable IPv6 on a per-domain basis. See bug 68796.
1378 pref("network.dns.ipv4OnlyDomains", "");
1379 
1380 // This preference can be used to turn off IPv6 name lookups. See bug 68796.
1381 pref("network.dns.disableIPv6", false);
1382 
1383 // This is the number of dns cache entries allowed
1384 pref("network.dnsCacheEntries", 400);
1385 
1386 // In the absence of OS TTLs, the DNS cache TTL value
1387 pref("network.dnsCacheExpiration", 60);
1388 
1389 // The grace period allows the DNS cache to use expired entries, while kicking off
1390 // a revalidation in the background.
1391 pref("network.dnsCacheExpirationGracePeriod", 60);
1392 
1393 // This preference can be used to turn off DNS prefetch.
1394 pref("network.dns.disablePrefetch", false);
1395 
1396 // This preference controls whether or not URLs with UTF-8 characters are
1397 // escaped.  Set this preference to TRUE for strict RFC2396 conformance.
1398 pref("network.standard-url.escape-utf8", true);
1399 
1400 // This preference controls whether or not URLs are always encoded and sent as
1401 // UTF-8.
1402 pref("network.standard-url.encode-utf8", true);
1403 
1404 // Idle timeout for ftp control connections - 5 minute default
1405 pref("network.ftp.idleConnectionTimeout", 300);
1406 
1407 // directory listing format
1408 // 2: HTML
1409 // 3: XUL directory viewer
1410 // all other values are treated like 2
1411 pref("network.dir.format", 2);
1412 
1413 // enables the prefetch service (i.e., prefetching of <link rel="next"> URLs).
1414 pref("network.prefetch-next", true);
1415 
1416 // enables the predictive service
1417 pref("network.predictor.enabled", false);
1418 pref("network.predictor.enable-hover-on-ssl", false);
1419 pref("network.predictor.page-degradation.day", 0);
1420 pref("network.predictor.page-degradation.week", 5);
1421 pref("network.predictor.page-degradation.month", 10);
1422 pref("network.predictor.page-degradation.year", 25);
1423 pref("network.predictor.page-degradation.max", 50);
1424 pref("network.predictor.subresource-degradation.day", 1);
1425 pref("network.predictor.subresource-degradation.week", 10);
1426 pref("network.predictor.subresource-degradation.month", 25);
1427 pref("network.predictor.subresource-degradation.year", 50);
1428 pref("network.predictor.subresource-degradation.max", 100);
1429 pref("network.predictor.preconnect-min-confidence", 90);
1430 pref("network.predictor.preresolve-min-confidence", 60);
1431 pref("network.predictor.redirect-likely-confidence", 75);
1432 pref("network.predictor.max-queue-size", 50);
1433 pref("network.predictor.max-db-size", 157286400); // bytes
1434 pref("network.predictor.preserve", 80); // percentage of predictor data to keep when cleaning up
1435 
1436 
1437 // The following prefs pertain to the negotiate-auth extension (see bug 17578),
1438 // which provides transparent Kerberos or NTLM authentication using the SPNEGO
1439 // protocol.  Each pref is a comma-separated list of keys, where each key has
1440 // the format:
1441 //   [scheme "://"] [host [":" port]]
1442 // For example, "foo.com" would match "http://www.foo.com/bar", etc.
1443 
1444 // Allow insecure NTLMv1 when needed.
1445 pref("network.negotiate-auth.allow-insecure-ntlm-v1", false);
1446 // Allow insecure NTLMv1 for HTTPS protected sites by default.
1447 pref("network.negotiate-auth.allow-insecure-ntlm-v1-https", true);
1448 
1449 // This list controls which URIs can use the negotiate-auth protocol.  This
1450 // list should be limited to the servers you know you'll need to login to.
1451 pref("network.negotiate-auth.trusted-uris", "");
1452 // This list controls which URIs can support delegation.
1453 pref("network.negotiate-auth.delegation-uris", "");
1454 
1455 // Do not allow SPNEGO by default when challenged by a local server.
1456 pref("network.negotiate-auth.allow-non-fqdn", false);
1457 
1458 // Allow SPNEGO by default when challenged by a proxy server.
1459 pref("network.negotiate-auth.allow-proxies", true);
1460 
1461 // Path to a specific gssapi library
1462 pref("network.negotiate-auth.gsslib", "");
1463 
1464 // Specify if the gss lib comes standard with the OS
1465 pref("network.negotiate-auth.using-native-gsslib", true);
1466 
1467 #ifdef XP_WIN
1468 
1469 // Default to using the SSPI intead of GSSAPI on windows
1470 pref("network.auth.use-sspi", true);
1471 
1472 #endif
1473 
1474 // Controls which NTLM authentication implementation we default to. True forces
1475 // the use of our generic (internal) NTLM authentication implementation vs. any
1476 // native implementation provided by the os. This pref is for diagnosing issues
1477 // with native NTLM. (See bug 520607 for details.) Using generic NTLM authentication
1478 // can expose the user to reflection attack vulnerabilities. Do not change this
1479 // unless you know what you're doing!
1480 // This pref should be removed 6 months after the release of firefox 3.6.
1481 pref("network.auth.force-generic-ntlm", false);
1482 
1483 // The following prefs are used to enable automatic use of the operating
1484 // system's NTLM implementation to silently authenticate the user with their
1485 // Window's domain logon.  The trusted-uris pref follows the format of the
1486 // trusted-uris pref for negotiate authentication.
1487 pref("network.automatic-ntlm-auth.allow-proxies", true);
1488 pref("network.automatic-ntlm-auth.allow-non-fqdn", false);
1489 pref("network.automatic-ntlm-auth.trusted-uris", "");
1490 
1491 // This preference controls whether or not the LM hash will be included in
1492 // response to a NTLM challenge.  By default, this is disabled since servers
1493 // should almost never need the LM hash, and the LM hash is what makes NTLM
1494 // authentication less secure.  See bug 250691 for further details.
1495 // NOTE: automatic-ntlm-auth which leverages the OS-provided NTLM
1496 //       implementation will not be affected by this preference.
1497 pref("network.ntlm.send-lm-response", false);
1498 
1499 pref("permissions.default.image",           1); // 1-Accept, 2-Deny, 3-dontAcceptForeign
1500 
1501 pref("network.proxy.type",                  5);
1502 pref("network.proxy.ftp",                   "");
1503 pref("network.proxy.ftp_port",              0);
1504 pref("network.proxy.http",                  "");
1505 pref("network.proxy.http_port",             0);
1506 pref("network.proxy.ssl",                   "");
1507 pref("network.proxy.ssl_port",              0);
1508 pref("network.proxy.socks",                 "");
1509 pref("network.proxy.socks_port",            0);
1510 pref("network.proxy.socks_version",         5);
1511 pref("network.proxy.socks_remote_dns",      false);
1512 pref("network.proxy.proxy_over_tls",        true);
1513 pref("network.proxy.no_proxies_on",         "localhost, 127.0.0.1");
1514 pref("network.proxy.failover_timeout",      1800); // 30 minutes
1515 pref("network.online",                      true); //online/offline
1516 #ifdef RELEASE_BUILD
1517 pref("network.cookie.cookieBehavior",       0); // 0-Accept, 1-dontAcceptForeign, 2-dontUse, 3-limitForeign
1518 #else
1519 pref("network.cookie.cookieBehavior",       3); // 0-Accept, 1-dontAcceptForeign, 2-dontUse, 3-limitForeign
1520 #endif
1521 #ifdef ANDROID
1522 pref("network.cookie.cookieBehavior",       0); // Keep the old default of accepting all cookies
1523 #endif
1524 pref("network.cookie.thirdparty.sessionOnly", false);
1525 pref("network.cookie.lifetimePolicy",       0); // accept normally, 1-askBeforeAccepting, 2-acceptForSession,3-acceptForNDays
1526 pref("network.cookie.alwaysAcceptSessionCookies", false);
1527 pref("network.cookie.prefsMigrated",        false);
1528 pref("network.cookie.lifetime.days",        90);
1529 
1530 // The PAC file to load.  Ignored unless network.proxy.type is 2.
1531 pref("network.proxy.autoconfig_url", "");
1532 
1533 // If we cannot load the PAC file, then try again (doubling from interval_min
1534 // until we reach interval_max or the PAC file is successfully loaded).
1535 pref("network.proxy.autoconfig_retry_interval_min", 5);    // 5 seconds
1536 pref("network.proxy.autoconfig_retry_interval_max", 300);  // 5 minutes
1537 
1538 // Use the HSTS preload list by default
1539 pref("network.stricttransportsecurity.preloadlist", true);
1540 
1541 pref("converter.html2txt.structs",          true); // Output structured phrases (strong, em, code, sub, sup, b, i, u)
1542 pref("converter.html2txt.header_strategy",  1); // 0 = no indention; 1 = indention, increased with header level; 2 = numbering and slight indention
1543 
1544 pref("intl.accept_languages",               "chrome://global/locale/intl.properties");
1545 pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties");
1546 pref("intl.menuitems.insertseparatorbeforeaccesskeys","chrome://global/locale/intl.properties");
1547 pref("intl.charset.detector",               "chrome://global/locale/intl.properties");
1548 pref("intl.charset.fallback.override",      "");
1549 pref("intl.charset.fallback.tld",           true);
1550 pref("intl.ellipsis",                       "chrome://global-platform/locale/intl.properties");
1551 pref("intl.locale.matchOS",                 false);
1552 // fallback charset list for Unicode conversion (converting from Unicode)
1553 // currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes)
1554 // for ISO-8859-1
1555 pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252");
1556 pref("font.language.group",                 "chrome://global/locale/intl.properties");
1557 
1558 // these locales have right-to-left UI
1559 pref("intl.uidirection.ar", "rtl");
1560 pref("intl.uidirection.he", "rtl");
1561 pref("intl.uidirection.fa", "rtl");
1562 pref("intl.uidirection.ug", "rtl");
1563 pref("intl.uidirection.ur", "rtl");
1564 
1565 // use en-US hyphenation by default for content tagged with plain lang="en"
1566 pref("intl.hyphenation-alias.en", "en-us");
1567 // and for other subtags of en-*, if no specific patterns are available
1568 pref("intl.hyphenation-alias.en-*", "en-us");
1569 
1570 pref("intl.hyphenation-alias.af-*", "af");
1571 pref("intl.hyphenation-alias.bg-*", "bg");
1572 pref("intl.hyphenation-alias.ca-*", "ca");
1573 pref("intl.hyphenation-alias.cy-*", "cy");
1574 pref("intl.hyphenation-alias.da-*", "da");
1575 pref("intl.hyphenation-alias.eo-*", "eo");
1576 pref("intl.hyphenation-alias.es-*", "es");
1577 pref("intl.hyphenation-alias.et-*", "et");
1578 pref("intl.hyphenation-alias.fi-*", "fi");
1579 pref("intl.hyphenation-alias.fr-*", "fr");
1580 pref("intl.hyphenation-alias.gl-*", "gl");
1581 pref("intl.hyphenation-alias.hr-*", "hr");
1582 pref("intl.hyphenation-alias.hsb-*", "hsb");
1583 pref("intl.hyphenation-alias.hu-*", "hu");
1584 pref("intl.hyphenation-alias.ia-*", "ia");
1585 pref("intl.hyphenation-alias.is-*", "is");
1586 pref("intl.hyphenation-alias.it-*", "it");
1587 pref("intl.hyphenation-alias.kmr-*", "kmr");
1588 pref("intl.hyphenation-alias.la-*", "la");
1589 pref("intl.hyphenation-alias.lt-*", "lt");
1590 pref("intl.hyphenation-alias.mn-*", "mn");
1591 pref("intl.hyphenation-alias.nl-*", "nl");
1592 pref("intl.hyphenation-alias.pl-*", "pl");
1593 pref("intl.hyphenation-alias.pt-*", "pt");
1594 pref("intl.hyphenation-alias.ru-*", "ru");
1595 pref("intl.hyphenation-alias.sl-*", "sl");
1596 pref("intl.hyphenation-alias.sv-*", "sv");
1597 pref("intl.hyphenation-alias.tr-*", "tr");
1598 pref("intl.hyphenation-alias.uk-*", "uk");
1599 
1600 // use reformed (1996) German patterns by default unless specifically tagged as de-1901
1601 // (these prefs may soon be obsoleted by better BCP47-based tag matching, but for now...)
1602 pref("intl.hyphenation-alias.de", "de-1996");
1603 pref("intl.hyphenation-alias.de-*", "de-1996");
1604 pref("intl.hyphenation-alias.de-AT-1901", "de-1901");
1605 pref("intl.hyphenation-alias.de-DE-1901", "de-1901");
1606 pref("intl.hyphenation-alias.de-CH-*", "de-CH");
1607 
1608 // patterns from TeX are tagged as "sh" (Serbo-Croatian) macrolanguage;
1609 // alias "sr" (Serbian) and "bs" (Bosnian) to those patterns
1610 // (Croatian has its own separate patterns).
1611 pref("intl.hyphenation-alias.sr", "sh");
1612 pref("intl.hyphenation-alias.bs", "sh");
1613 pref("intl.hyphenation-alias.sh-*", "sh");
1614 pref("intl.hyphenation-alias.sr-*", "sh");
1615 pref("intl.hyphenation-alias.bs-*", "sh");
1616 
1617 // Norwegian has two forms, Bokmål and Nynorsk, with "no" as a macrolanguage encompassing both.
1618 // For "no", we'll alias to "nb" (Bokmål) as that is the more widely used written form.
1619 pref("intl.hyphenation-alias.no", "nb");
1620 pref("intl.hyphenation-alias.no-*", "nb");
1621 pref("intl.hyphenation-alias.nb-*", "nb");
1622 pref("intl.hyphenation-alias.nn-*", "nn");
1623 
1624 pref("font.mathfont-family", "Latin Modern Math, XITS Math, STIX Math, Cambria Math, Asana Math, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Termes Math, Neo Euler, Lucida Bright Math, MathJax_Main, STIXNonUnicode, STIXSizeOneSym, STIXGeneral, Standard Symbols L, DejaVu Sans");
1625 
1626 // Some CJK fonts have bad underline offset, their CJK character glyphs are overlapped (or adjoined)  to its underline.
1627 // These fonts are ignored the underline offset, instead of it, the underline is lowered to bottom of its em descent.
1628 pref("font.blacklist.underline_offset", "FangSong,Gulim,GulimChe,MingLiU,MingLiU-ExtB,MingLiU_HKSCS,MingLiU-HKSCS-ExtB,MS Gothic,MS Mincho,MS PGothic,MS PMincho,MS UI Gothic,PMingLiU,PMingLiU-ExtB,SimHei,SimSun,SimSun-ExtB,Hei,Kai,Apple LiGothic,Apple LiSung,Osaka");
1629 
1630 #ifdef MOZ_WIDGET_GONK
1631 // Whitelist of fonts that ship with B2G that do not include space lookups in
1632 // default features. This allows us to skip analyzing the GSUB/GPOS tables
1633 // unless features are explicitly enabled.
1634 // Use NSPR_LOG_MODULES=fontinit:5 to dump out details of space lookups
1635 pref("font.whitelist.skip_default_features_space_check", "Fira Sans,Fira Mono");
1636 #endif
1637 
1638 pref("images.dither", "auto");
1639 pref("security.directory",              "");
1640 
1641 pref("signed.applets.codebase_principal_support", false);
1642 pref("security.checkloaduri", true);
1643 pref("security.xpconnect.plugin.unrestricted", true);
1644 // security-sensitive dialogs should delay button enabling. In milliseconds.
1645 pref("security.dialog_enable_delay", 1000);
1646 pref("security.notification_enable_delay", 500);
1647 
1648 pref("security.csp.enable", true);
1649 pref("security.csp.debug", false);
1650 pref("security.csp.experimentalEnabled", false);
1651 
1652 // Mixed content blocking
1653 pref("security.mixed_content.block_active_content", false);
1654 pref("security.mixed_content.block_display_content", false);
1655 
1656 // Disable pinning checks by default.
1657 pref("security.cert_pinning.enforcement_level", 0);
1658 
1659 // Modifier key prefs: default to Windows settings,
1660 // menu access key = alt, accelerator key = control.
1661 // Use 17 for Ctrl, 18 for Alt, 224 for Meta, 91 for Win, 0 for none. Mac settings in macprefs.js
1662 pref("ui.key.accelKey", 17);
1663 pref("ui.key.menuAccessKey", 18);
1664 pref("ui.key.generalAccessKey", -1);
1665 
1666 // If generalAccessKey is -1, use the following two prefs instead.
1667 // Use 0 for disabled, 1 for Shift, 2 for Ctrl, 4 for Alt, 8 for Meta, 16 for Win
1668 // (values can be combined, e.g. 5 for Alt+Shift)
1669 pref("ui.key.chromeAccess", 4);
1670 pref("ui.key.contentAccess", 5);
1671 
1672 pref("ui.key.menuAccessKeyFocuses", false); // overridden below
1673 pref("ui.key.saveLink.shift", true); // true = shift, false = meta
1674 
1675 // Disable page loading activity cursor by default.
1676 pref("ui.use_activity_cursor", false);
1677 
1678 // Middle-mouse handling
1679 pref("middlemouse.paste", false);
1680 pref("middlemouse.openNewWindow", true);
1681 pref("middlemouse.contentLoadURL", false);
1682 pref("middlemouse.scrollbarPosition", false);
1683 
1684 // Clipboard behavior
1685 pref("clipboard.autocopy", false);
1686 
1687 // mouse wheel scroll transaction period of time (in milliseconds)
1688 pref("mousewheel.transaction.timeout", 1500);
1689 // mouse wheel scroll transaction is held even if the mouse cursor is moved.
1690 pref("mousewheel.transaction.ignoremovedelay", 100);
1691 
1692 // prefs for app level mouse wheel scrolling acceleration.
1693 // number of mousewheel clicks when acceleration starts
1694 // acceleration can be turned off if pref is set to -1
1695 pref("mousewheel.acceleration.start", -1);
1696 // factor to be multiplied for constant acceleration
1697 pref("mousewheel.acceleration.factor", 10);
1698 
1699 // Prefs for override the system mouse wheel scrolling speed on the root
1700 // content of the web pages.  When
1701 // "mousewheel.system_scroll_override_on_root_content.enabled" is true and the system
1702 // scrolling speed isn't customized by the user, the root content scrolling
1703 // speed is multiplied by the following factors.  The value will be used as
1704 // 1/100.  E.g., 200 means 2.00.
1705 // NOTE: Even if "mousewheel.system_scroll_override_on_root_content.enabled" is
1706 // true, when Gecko detects the user customized the system scrolling speed
1707 // settings, the override isn't executed.
1708 pref("mousewheel.system_scroll_override_on_root_content.vertical.factor", 200);
1709 pref("mousewheel.system_scroll_override_on_root_content.horizontal.factor", 200);
1710 
1711 // mousewheel.*.action can specify the action when you use mosue wheel.
1712 // When no modifier keys are pressed or two or more modifires are pressed,
1713 // .default is used.
1714 // 0: Nothing happens
1715 // 1: Scrolling contents
1716 // 2: Go back or go forward, in your history
1717 // 3: Zoom in or out.
1718 pref("mousewheel.default.action", 1);
1719 pref("mousewheel.with_alt.action", 2);
1720 pref("mousewheel.with_control.action", 3);
1721 pref("mousewheel.with_meta.action", 1);  // command key on Mac
1722 pref("mousewheel.with_shift.action", 1);
1723 pref("mousewheel.with_win.action", 1);
1724 
1725 // mousewheel.*.action.override_x will override the action
1726 // when the mouse wheel is rotated along the x direction.
1727 // -1: Don't override the action.
1728 // 0 to 3: Override the action with the specified value.
1729 pref("mousewheel.default.action.override_x", -1);
1730 pref("mousewheel.with_alt.action.override_x", -1);
1731 pref("mousewheel.with_control.action.override_x", -1);
1732 pref("mousewheel.with_meta.action.override_x", -1);  // command key on Mac
1733 pref("mousewheel.with_shift.action.override_x", -1);
1734 pref("mousewheel.with_win.action.override_x", -1);
1735 
1736 // mousewheel.*.delta_multiplier_* can specify the value muliplied by the delta
1737 // value.  The values will be used after divided by 100.  I.e., 100 means 1.0,
1738 // -100 means -1.0.  If the values were negative, the direction would be
1739 // reverted.  The absolue value must be 100 or larger.
1740 pref("mousewheel.default.delta_multiplier_x", 100);
1741 pref("mousewheel.default.delta_multiplier_y", 100);
1742 pref("mousewheel.default.delta_multiplier_z", 100);
1743 pref("mousewheel.with_alt.delta_multiplier_x", 100);
1744 pref("mousewheel.with_alt.delta_multiplier_y", 100);
1745 pref("mousewheel.with_alt.delta_multiplier_z", 100);
1746 pref("mousewheel.with_control.delta_multiplier_x", 100);
1747 pref("mousewheel.with_control.delta_multiplier_y", 100);
1748 pref("mousewheel.with_control.delta_multiplier_z", 100);
1749 pref("mousewheel.with_meta.delta_multiplier_x", 100);  // command key on Mac
1750 pref("mousewheel.with_meta.delta_multiplier_y", 100);  // command key on Mac
1751 pref("mousewheel.with_meta.delta_multiplier_z", 100);  // command key on Mac
1752 pref("mousewheel.with_shift.delta_multiplier_x", 100);
1753 pref("mousewheel.with_shift.delta_multiplier_y", 100);
1754 pref("mousewheel.with_shift.delta_multiplier_z", 100);
1755 pref("mousewheel.with_win.delta_multiplier_x", 100);
1756 pref("mousewheel.with_win.delta_multiplier_y", 100);
1757 pref("mousewheel.with_win.delta_multiplier_z", 100);
1758 
1759 // If line-height is lower than this value (in device pixels), 1 line scroll
1760 // scrolls this height.
1761 pref("mousewheel.min_line_scroll_amount", 5);
1762 
1763 // These define the smooth scroll behavior (min ms, max ms) for different triggers
1764 // Some triggers:
1765 // mouseWheel: Discrete mouse wheel events, Synaptics touchpads on windows (generate wheel events)
1766 // Lines:  Up/Down/Left/Right KB arrows
1767 // Pages:  Page up/down, Space
1768 // Scrollbars: Clicking scrollbars arrows, clicking scrollbars tracks
1769 // Note: Currently OS X trackpad and magic mouse don't use our smooth scrolling
1770 // Note: These are relevant only when "general.smoothScroll" is enabled
1771 pref("general.smoothScroll.mouseWheel.durationMinMS", 200);
1772 pref("general.smoothScroll.mouseWheel.durationMaxMS", 400);
1773 pref("general.smoothScroll.pixels.durationMinMS", 150);
1774 pref("general.smoothScroll.pixels.durationMaxMS", 150);
1775 pref("general.smoothScroll.lines.durationMinMS", 150);
1776 pref("general.smoothScroll.lines.durationMaxMS", 150);
1777 pref("general.smoothScroll.pages.durationMinMS", 150);
1778 pref("general.smoothScroll.pages.durationMaxMS", 150);
1779 pref("general.smoothScroll.scrollbars.durationMinMS", 150);
1780 pref("general.smoothScroll.scrollbars.durationMaxMS", 150);
1781 pref("general.smoothScroll.other.durationMinMS", 150);
1782 pref("general.smoothScroll.other.durationMaxMS", 150);
1783 // Enable disable smooth scrolling for different triggers (when "general.smoothScroll" is enabled)
1784 pref("general.smoothScroll.mouseWheel", true);
1785 pref("general.smoothScroll.pixels", true);
1786 pref("general.smoothScroll.lines", true);
1787 pref("general.smoothScroll.pages", true);
1788 pref("general.smoothScroll.scrollbars", true);
1789 pref("general.smoothScroll.other", true);
1790 // To connect consecutive scroll events into a continuous flow, the animation's duration
1791 // should be longer than scroll events intervals (or else the scroll will stop
1792 // before the next event arrives - we're guessing next interval by averaging recent
1793 // intervals).
1794 // This defines how longer is the duration compared to events interval (percentage)
1795 pref("general.smoothScroll.durationToIntervalRatio", 200);
1796 
1797 pref("profile.confirm_automigration",true);
1798 // profile.migration_behavior determines how the profiles root is set
1799 // 0 - use NS_APP_USER_PROFILES_ROOT_DIR
1800 // 1 - create one based on the NS4.x profile root
1801 // 2 - use, if not empty, profile.migration_directory otherwise same as 0
1802 pref("profile.migration_behavior",0);
1803 pref("profile.migration_directory", "");
1804 
1805 // the amount of time (in seconds) that must elapse
1806 // before we think your mozilla profile is defunct
1807 // and you'd benefit from re-migrating from 4.x
1808 // see bug #137886 for more details
1809 //
1810 // if -1, we never think your profile is defunct
1811 // and users will never see the remigrate UI.
1812 pref("profile.seconds_until_defunct", -1);
1813 // We can show it anytime from menus
1814 pref("profile.manage_only_at_launch", false);
1815 
1816 pref("prefs.converted-to-utf8",false);
1817 
1818 // ------------------
1819 //  Text Direction
1820 // ------------------
1821 // 1 = directionLTRBidi *
1822 // 2 = directionRTLBidi
1823 pref("bidi.direction", 1);
1824 // ------------------
1825 //  Text Type
1826 // ------------------
1827 // 1 = charsettexttypeBidi *
1828 // 2 = logicaltexttypeBidi
1829 // 3 = visualtexttypeBidi
1830 pref("bidi.texttype", 1);
1831 // ------------------
1832 //  Numeral Style
1833 // ------------------
1834 // 0 = nominalnumeralBidi *
1835 // 1 = regularcontextnumeralBidi
1836 // 2 = hindicontextnumeralBidi
1837 // 3 = arabicnumeralBidi
1838 // 4 = hindinumeralBidi
1839 // 5 = persiancontextnumeralBidi
1840 // 6 = persiannumeralBidi
1841 pref("bidi.numeral", 0);
1842 // ------------------
1843 //  Support Mode
1844 // ------------------
1845 // 1 = mozillaBidisupport *
1846 // 2 = OsBidisupport
1847 // 3 = disableBidisupport
1848 pref("bidi.support", 1);
1849 // Whether delete and backspace should immediately delete characters not
1850 // visually adjacent to the caret, or adjust the visual position of the caret
1851 // on the first keypress and delete the character on a second keypress
1852 pref("bidi.edit.delete_immediately", false);
1853 
1854 // Bidi caret movement style:
1855 // 0 = logical
1856 // 1 = visual
1857 // 2 = visual, but logical during selection
1858 pref("bidi.edit.caret_movement_style", 2);
1859 
1860 // Setting this pref to |true| forces Bidi UI menu items and keyboard shortcuts
1861 // to be exposed, and enables the directional caret hook. By default, only
1862 // expose it for bidi-associated system locales.
1863 pref("bidi.browser.ui", false);
1864 
1865 // used for double-click word selection behavior. Win will override.
1866 pref("layout.word_select.eat_space_to_next_word", false);
1867 pref("layout.word_select.stop_at_punctuation", true);
1868 
1869 // controls caret style and word-delete during text selection
1870 // 0 = use platform default
1871 // 1 = caret moves and blinks as when there is no selection; word
1872 //     delete deselects the selection and then deletes word
1873 // 2 = caret moves to selection edge and is not visible during selection;
1874 //     word delete deletes the selection (Mac and Linux default)
1875 // 3 = caret moves and blinks as when there is no selection; word delete
1876 //     deletes the selection
1877 // Windows default is 1 for word delete behavior, the rest as for 2.
1878 pref("layout.selection.caret_style", 0);
1879 
1880 // pref to force frames to be resizable
1881 pref("layout.frames.force_resizability", false);
1882 
1883 // pref to report CSS errors to the error console
1884 pref("layout.css.report_errors", true);
1885 
1886 // Should the :visited selector ever match (otherwise :link matches instead)?
1887 pref("layout.css.visited_links_enabled", true);
1888 
1889 // Override DPI. A value of -1 means use the maximum of 96 and the system DPI.
1890 // A value of 0 means use the system DPI. A positive value is used as the DPI.
1891 // This sets the physical size of a device pixel and thus controls the
1892 // interpretation of physical units such as "pt".
1893 pref("layout.css.dpi", -1);
1894 
1895 // Set the number of device pixels per CSS pixel. A value <= 0 means choose
1896 // automatically based on user settings for the platform (e.g., "UI scale factor"
1897 // on Mac). A positive value is used as-is. This effectively controls the size
1898 // of a CSS "px". This is only used for windows on the screen, not for printing.
1899 pref("layout.css.devPixelsPerPx", "-1.0");
1900 
1901 // Is support for CSS Masking features enabled?
1902 #ifdef RELEASE_BUILD
1903 pref("layout.css.masking.enabled", false);
1904 #else
1905 pref("layout.css.masking.enabled", true);
1906 #endif
1907 
1908 // Is support for mix-blend-mode enabled?
1909 pref("layout.css.mix-blend-mode.enabled", true);
1910 
1911 // Is support for CSS Filters enabled?
1912 pref("layout.css.filters.enabled", false);
1913 
1914 // Is support for CSS sticky positioning enabled?
1915 pref("layout.css.sticky.enabled", true);
1916 
1917 // Is support for CSS "will-change" enabled?
1918 pref("layout.css.will-change.enabled", false);
1919 
1920 // Is support for DOMPoint enabled?
1921 pref("layout.css.DOMPoint.enabled", true);
1922 
1923 // Is support for DOMQuad enabled?
1924 pref("layout.css.DOMQuad.enabled", true);
1925 
1926 // Is support for DOMMatrix enabled?
1927 pref("layout.css.DOMMatrix.enabled", true);
1928 
1929 // Is support for GeometryUtils.getBoxQuads enabled?
1930 #ifdef RELEASE_BUILD
1931 pref("layout.css.getBoxQuads.enabled", false);
1932 #else
1933 pref("layout.css.getBoxQuads.enabled", true);
1934 #endif
1935 
1936 // Is support for GeometryUtils.getBoxQuads enabled?
1937 #ifdef RELEASE_BUILD
1938 pref("layout.css.convertFromNode.enabled", false);
1939 #else
1940 pref("layout.css.convertFromNode.enabled", true);
1941 #endif
1942 
1943 // Is support for CSS "text-align: true X" enabled?
1944 pref("layout.css.text-align-true-value.enabled", false);
1945 
1946 // Is support for the CSS4 image-orientation property enabled?
1947 pref("layout.css.image-orientation.enabled", true);
1948 
1949 // Is support for CSS3 Fonts features enabled?
1950 // (includes font-variant-*, font-kerning, font-synthesis
1951 // and the @font-feature-values rule)
1952 // Note: with this enabled, font-feature-settings is aliased
1953 // to -moz-font-feature-settings.  When unprefixing, this should
1954 // be reversed, -moz-font-feature-settings should alias to
1955 // font-feature-settings.
1956 #ifdef RELEASE_BUILD
1957 pref("layout.css.font-features.enabled", false);
1958 #else
1959 pref("layout.css.font-features.enabled", true);
1960 #endif
1961 
1962 // Are sets of prefixed properties supported?
1963 pref("layout.css.prefixes.border-image", true);
1964 pref("layout.css.prefixes.transforms", true);
1965 pref("layout.css.prefixes.transitions", true);
1966 pref("layout.css.prefixes.animations", true);
1967 pref("layout.css.prefixes.box-sizing", true);
1968 
1969 // Is support for the :scope selector enabled?
1970 pref("layout.css.scope-pseudo.enabled", true);
1971 
1972 // Is support for background-blend-mode enabled?
1973 pref("layout.css.background-blend-mode.enabled", true);
1974 
1975 // Is support for CSS vertical text enabled?
1976 pref("layout.css.vertical-text.enabled", false);
1977 
1978 // Is -moz-osx-font-smoothing enabled?
1979 // Only supported in OSX builds
1980 #ifdef XP_MACOSX
1981 pref("layout.css.osx-font-smoothing.enabled", true);
1982 #else
1983 pref("layout.css.osx-font-smoothing.enabled", false);
1984 #endif
1985 
1986 // Is support for the CSS-wide "unset" value enabled?
1987 pref("layout.css.unset-value.enabled", true);
1988 
1989 // Is support for the "all" shorthand enabled?
1990 pref("layout.css.all-shorthand.enabled", true);
1991 
1992 // Is support for CSS variables enabled?
1993 pref("layout.css.variables.enabled", true);
1994 
1995 // Is support for CSS overflow-clip-box enabled for non-UA sheets?
1996 pref("layout.css.overflow-clip-box.enabled", false);
1997 
1998 // Is support for CSS grid enabled?
1999 pref("layout.css.grid.enabled", false);
2000 
2001 // Is support for CSS Ruby enabled?
2002 pref("layout.css.ruby.enabled", false);
2003 
2004 // Is support for CSS box-decoration-break enabled?
2005 pref("layout.css.box-decoration-break.enabled", true);
2006 
2007 // Is layout of CSS outline-style:auto enabled?
2008 pref("layout.css.outline-style-auto.enabled", false);
2009 
2010 // Is CSSOM-View scroll-behavior and its MSD smooth scrolling enabled?
2011 pref("layout.css.scroll-behavior.enabled", false);
2012 
2013 // Tuning of the smooth scroll motion used by CSSOM-View scroll-behavior.
2014 // Spring-constant controls the strength of the simulated MSD
2015 // (Mass-Spring-Damper)
2016 pref("layout.css.scroll-behavior.spring-constant", "250.0");
2017 
2018 // Tuning of the smooth scroll motion used by CSSOM-View scroll-behavior.
2019 // Damping-ratio controls the dampening force of the simulated MSD
2020 // (Mass-Spring-Damper).
2021 // When below 1.0, the system is under-damped; it may overshoot the target and
2022 // oscillate.
2023 // When greater than 1.0, the system is over-damped; it will reach the target at
2024 // reduced speed without overshooting.
2025 // When equal to 1.0, the system is critically-damped; it will reach the target
2026 // at the greatest speed without overshooting.
2027 pref("layout.css.scroll-behavior.damping-ratio", "1.0");
2028 
2029 // pref for which side vertical scrollbars should be on
2030 // 0 = end-side in UI direction
2031 // 1 = end-side in document/content direction
2032 // 2 = right
2033 // 3 = left
2034 pref("layout.scrollbar.side", 0);
2035 
2036 // pref to stop overlay scrollbars from fading out, for testing purposes
2037 pref("layout.testing.overlay-scrollbars.always-visible", false);
2038 
2039 // Enable/disable interruptible reflow, which allows reflows to stop
2040 // before completion (and display the partial results) when user events
2041 // are pending.
2042 pref("layout.interruptible-reflow.enabled", true);
2043 
2044 // pref to control browser frame rate, in Hz. A value <= 0 means choose
2045 // automatically based on knowledge of the platform (or 60Hz if no platform-
2046 // specific information is available).
2047 pref("layout.frame_rate", -1);
2048 
2049 // pref to dump the display list to the log. Useful for debugging invalidation problems.
2050 #ifdef MOZ_DUMP_PAINTING
2051 pref("layout.display-list.dump", false);
2052 #endif
2053 
2054 // pref to control precision of the frame rate timer. When true,
2055 // we use a "precise" timer, which means each notification fires
2056 // Nms after the start of the last notification. That means if the
2057 // processing of the notification is slow, the timer can fire immediately
2058 // after we've just finished processing the last notification, which might
2059 // lead to starvation problems.
2060 // When false, we use a "slack" timer which fires Nms after the *end*
2061 // of the last notification. This can give less tight frame rates
2062 // but provides more time for other operations when the browser is
2063 // heavily loaded.
2064 pref("layout.frame_rate.precise", false);
2065 
2066 // pref to control whether layout warnings that are hit quite often are enabled 
2067 pref("layout.spammy_warnings.enabled", true);
2068 
2069 // Is support for the Web Animations API enabled?
2070 #ifdef RELEASE_BUILD
2071 pref("dom.animations-api.core.enabled", false);
2072 #else
2073 pref("dom.animations-api.core.enabled", true);
2074 #endif
2075 
2076 // pref to permit users to make verified SOAP calls by default
2077 pref("capability.policy.default.SOAPCall.invokeVerifySourceHeader", "allAccess");
2078 
2079 // if true, allow plug-ins to override internal imglib decoder mime types in full-page mode
2080 pref("plugin.override_internal_types", false);
2081 
2082 // See bug 136985.  Gives embedders a pref to hook into to show
2083 // a popup blocker if they choose.
2084 pref("browser.popups.showPopupBlocker", true);
2085 
2086 // Pref to control whether the viewmanager code does double-buffering or not
2087 // See http://bugzilla.mozilla.org/show_bug.cgi?id=169483 for further details...
2088 pref("viewmanager.do_doublebuffering", true);
2089 
2090 // enable single finger gesture input (win7+ tablets)
2091 pref("gestures.enable_single_finger_input", true);
2092 
2093 pref("editor.resizing.preserve_ratio",       true);
2094 pref("editor.positioning.offset",            0);
2095 
2096 pref("dom.use_watchdog", true);
2097 pref("dom.max_chrome_script_run_time", 20);
2098 pref("dom.max_script_run_time", 10);
2099 
2100 // If true, ArchiveReader will be enabled
2101 pref("dom.archivereader.enabled", false);
2102 
2103 // Hang monitor timeout after which we kill the browser, in seconds
2104 // (0 is disabled)
2105 // Disabled on all platforms per bug 705748 until the found issues are
2106 // resolved.
2107 pref("hangmonitor.timeout", 0);
2108 
2109 pref("plugins.load_appdir_plugins", false);
2110 // If true, plugins will be click to play
2111 pref("plugins.click_to_play", false);
2112 
2113 // A comma-delimited list of plugin name prefixes matching plugins that will be
2114 // exposed when enumerating navigator.plugins[]. For example, prefix "Shockwave"
2115 // matches both Adobe Flash Player ("Shockwave Flash") and Adobe Shockwave
2116 // Player ("Shockwave for Director"). To hide all plugins from enumeration, use
2117 // the empty string "" to match no plugin names. To allow all plugins to be
2118 // enumerated, use the string "*" to match all plugin names.
2119 pref("plugins.enumerable_names", "*");
2120 
2121 // The default value for nsIPluginTag.enabledState (STATE_ENABLED = 2)
2122 pref("plugin.default.state", 2);
2123 
2124 // The MIME type that should bind to legacy java-specific invocations like
2125 // <applet> and <object data="java:foo">. Setting this to a non-java MIME type
2126 // is undefined behavior.
2127 pref("plugin.java.mime", "application/x-java-vm");
2128 
2129 // How long in minutes we will allow a plugin to work after the user has chosen
2130 // to allow it "now"
2131 pref("plugin.sessionPermissionNow.intervalInMinutes", 60);
2132 // How long in days we will allow a plugin to work after the user has chosen
2133 // to allow it persistently.
2134 pref("plugin.persistentPermissionAlways.intervalInDays", 90);
2135 
2136 #ifndef DEBUG
2137 // How long a plugin is allowed to process a synchronous IPC message
2138 // before we consider it "hung".
2139 pref("dom.ipc.plugins.timeoutSecs", 45);
2140 // How long a plugin process will wait for a response from the parent
2141 // to a synchronous request before terminating itself. After this
2142 // point the child assumes the parent is hung. Currently disabled.
2143 pref("dom.ipc.plugins.parentTimeoutSecs", 0);
2144 // How long a plugin launch is allowed to take before
2145 // we consider it failed.
2146 pref("dom.ipc.plugins.processLaunchTimeoutSecs", 45);
2147 #ifdef XP_WIN
2148 // How long a plugin is allowed to process a synchronous IPC message
2149 // before we display the plugin hang UI
2150 pref("dom.ipc.plugins.hangUITimeoutSecs", 11);
2151 // Minimum time that the plugin hang UI will be displayed
2152 pref("dom.ipc.plugins.hangUIMinDisplaySecs", 10);
2153 #endif
2154 // How long a content process can take before closing its IPC channel
2155 // after shutdown is initiated.  If the process exceeds the timeout,
2156 // we fear the worst and kill it.
2157 pref("dom.ipc.tabs.shutdownTimeoutSecs", 5);
2158 #else
2159 // No timeout in DEBUG builds
2160 pref("dom.ipc.plugins.timeoutSecs", 0);
2161 pref("dom.ipc.plugins.processLaunchTimeoutSecs", 0);
2162 pref("dom.ipc.plugins.parentTimeoutSecs", 0);
2163 #ifdef XP_WIN
2164 pref("dom.ipc.plugins.hangUITimeoutSecs", 0);
2165 pref("dom.ipc.plugins.hangUIMinDisplaySecs", 0);
2166 #endif
2167 pref("dom.ipc.tabs.shutdownTimeoutSecs", 0);
2168 #endif
2169 
2170 #ifdef XP_WIN
2171 // Disable oopp for java on windows. They run their own
2172 // process isolation which conflicts with our implementation.
2173 pref("dom.ipc.plugins.java.enabled", false);
2174 #endif
2175 
2176 pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", true);
2177 pref("dom.ipc.plugins.reportCrashURL", true);
2178 
2179 // How long we wait before unloading an idle plugin process.
2180 // Defaults to 30 seconds.
2181 pref("dom.ipc.plugins.unloadTimeoutSecs", 30);
2182 
2183 pref("dom.ipc.processCount", 1);
2184 
2185 // Enable the use of display-lists for SVG hit-testing and painting.
2186 pref("svg.display-lists.hit-testing.enabled", true);
2187 pref("svg.display-lists.painting.enabled", true);
2188 
2189 // Is support for the SVG 2 paint-order property enabled?
2190 pref("svg.paint-order.enabled", true);
2191 
2192 // Is support for the new marker features from SVG 2 enabled?  Currently
2193 // this just includes <marker orient="auto-start-reverse">.
2194 #ifdef RELEASE_BUILD
2195 pref("svg.marker-improvements.enabled", false);
2196 #else
2197 pref("svg.marker-improvements.enabled", true);
2198 #endif
2199 
2200 #ifdef RELEASE_BUILD
2201 pref("svg.svg-iframe.enabled", false);
2202 #else
2203 pref("svg.svg-iframe.enabled", false);
2204 #endif
2205 
2206 // Is support for the new getBBox method from SVG 2 enabled?
2207 // See https://svgwg.org/svg2-draft/single-page.html#types-SVGBoundingBoxOptions
2208 pref("svg.new-getBBox.enabled", false);
2209 
2210 // Default font types and sizes by locale
2211 pref("font.default.ar", "sans-serif");
2212 pref("font.minimum-size.ar", 0);
2213 pref("font.size.variable.ar", 16);
2214 pref("font.size.fixed.ar", 13);
2215 
2216 pref("font.default.el", "serif");
2217 pref("font.minimum-size.el", 0);
2218 pref("font.size.variable.el", 16);
2219 pref("font.size.fixed.el", 13);
2220 
2221 pref("font.default.he", "sans-serif");
2222 pref("font.minimum-size.he", 0);
2223 pref("font.size.variable.he", 16);
2224 pref("font.size.fixed.he", 13);
2225 
2226 pref("font.default.ja", "sans-serif");
2227 pref("font.minimum-size.ja", 0);
2228 pref("font.size.variable.ja", 16);
2229 pref("font.size.fixed.ja", 16);
2230 
2231 pref("font.default.ko", "sans-serif");
2232 pref("font.minimum-size.ko", 0);
2233 pref("font.size.variable.ko", 16);
2234 pref("font.size.fixed.ko", 16);
2235 
2236 pref("font.default.th", "serif");
2237 pref("font.minimum-size.th", 0);
2238 pref("font.size.variable.th", 16);
2239 pref("font.size.fixed.th", 13);
2240 
2241 pref("font.default.tr", "serif");
2242 pref("font.minimum-size.tr", 0);
2243 pref("font.size.variable.tr", 16);
2244 pref("font.size.fixed.tr", 13);
2245 
2246 pref("font.default.x-baltic", "serif");
2247 pref("font.minimum-size.x-baltic", 0);
2248 pref("font.size.variable.x-baltic", 16);
2249 pref("font.size.fixed.x-baltic", 13);
2250 
2251 pref("font.default.x-central-euro", "serif");
2252 pref("font.minimum-size.x-central-euro", 0);
2253 pref("font.size.variable.x-central-euro", 16);
2254 pref("font.size.fixed.x-central-euro", 13);
2255 
2256 pref("font.default.x-cyrillic", "serif");
2257 pref("font.minimum-size.x-cyrillic", 0);
2258 pref("font.size.variable.x-cyrillic", 16);
2259 pref("font.size.fixed.x-cyrillic", 13);
2260 
2261 pref("font.default.x-devanagari", "serif");
2262 pref("font.minimum-size.x-devanagari", 0);
2263 pref("font.size.variable.x-devanagari", 16);
2264 pref("font.size.fixed.x-devanagari", 13);
2265 
2266 pref("font.default.x-tamil", "serif");
2267 pref("font.minimum-size.x-tamil", 0);
2268 pref("font.size.variable.x-tamil", 16);
2269 pref("font.size.fixed.x-tamil", 13);
2270 
2271 pref("font.default.x-armn", "serif");
2272 pref("font.minimum-size.x-armn", 0);
2273 pref("font.size.variable.x-armn", 16);
2274 pref("font.size.fixed.x-armn", 13);
2275 
2276 pref("font.default.x-beng", "serif");
2277 pref("font.minimum-size.x-beng", 0);
2278 pref("font.size.variable.x-beng", 16);
2279 pref("font.size.fixed.x-beng", 13);
2280 
2281 pref("font.default.x-cans", "serif");
2282 pref("font.minimum-size.x-cans", 0);
2283 pref("font.size.variable.x-cans", 16);
2284 pref("font.size.fixed.x-cans", 13);
2285 
2286 pref("font.default.x-ethi", "serif");
2287 pref("font.minimum-size.x-ethi", 0);
2288 pref("font.size.variable.x-ethi", 16);
2289 pref("font.size.fixed.x-ethi", 13);
2290 
2291 pref("font.default.x-geor", "serif");
2292 pref("font.minimum-size.x-geor", 0);
2293 pref("font.size.variable.x-geor", 16);
2294 pref("font.size.fixed.x-geor", 13);
2295 
2296 pref("font.default.x-gujr", "serif");
2297 pref("font.minimum-size.x-gujr", 0);
2298 pref("font.size.variable.x-gujr", 16);
2299 pref("font.size.fixed.x-gujr", 13);
2300 
2301 pref("font.default.x-guru", "serif");
2302 pref("font.minimum-size.x-guru", 0);
2303 pref("font.size.variable.x-guru", 16);
2304 pref("font.size.fixed.x-guru", 13);
2305 
2306 pref("font.default.x-khmr", "serif");
2307 pref("font.minimum-size.x-khmr", 0);
2308 pref("font.size.variable.x-khmr", 16);
2309 pref("font.size.fixed.x-khmr", 13);
2310 
2311 pref("font.default.x-mlym", "serif");
2312 pref("font.minimum-size.x-mlym", 0);
2313 pref("font.size.variable.x-mlym", 16);
2314 pref("font.size.fixed.x-mlym", 13);
2315 
2316 pref("font.default.x-orya", "serif");
2317 pref("font.minimum-size.x-orya", 0);
2318 pref("font.size.variable.x-orya", 16);
2319 pref("font.size.fixed.x-orya", 13);
2320 
2321 pref("font.default.x-telu", "serif");
2322 pref("font.minimum-size.x-telu", 0);
2323 pref("font.size.variable.x-telu", 16);
2324 pref("font.size.fixed.x-telu", 13);
2325 
2326 pref("font.default.x-knda", "serif");
2327 pref("font.minimum-size.x-knda", 0);
2328 pref("font.size.variable.x-knda", 16);
2329 pref("font.size.fixed.x-knda", 13);
2330 
2331 pref("font.default.x-sinh", "serif");
2332 pref("font.minimum-size.x-sinh", 0);
2333 pref("font.size.variable.x-sinh", 16);
2334 pref("font.size.fixed.x-sinh", 13);
2335 
2336 pref("font.default.x-tibt", "serif");
2337 pref("font.minimum-size.x-tibt", 0);
2338 pref("font.size.variable.x-tibt", 16);
2339 pref("font.size.fixed.x-tibt", 13);
2340 
2341 pref("font.default.x-unicode", "serif");
2342 pref("font.minimum-size.x-unicode", 0);
2343 pref("font.size.variable.x-unicode", 16);
2344 pref("font.size.fixed.x-unicode", 13);
2345 
2346 pref("font.default.x-western", "serif");
2347 pref("font.minimum-size.x-western", 0);
2348 pref("font.size.variable.x-western", 16);
2349 pref("font.size.fixed.x-western", 13);
2350 
2351 pref("font.default.zh-CN", "sans-serif");
2352 pref("font.minimum-size.zh-CN", 0);
2353 pref("font.size.variable.zh-CN", 16);
2354 pref("font.size.fixed.zh-CN", 16);
2355 
2356 pref("font.default.zh-HK", "sans-serif");
2357 pref("font.minimum-size.zh-HK", 0);
2358 pref("font.size.variable.zh-HK", 16);
2359 pref("font.size.fixed.zh-HK", 16);
2360 
2361 pref("font.default.zh-TW", "sans-serif");
2362 pref("font.minimum-size.zh-TW", 0);
2363 pref("font.size.variable.zh-TW", 16);
2364 pref("font.size.fixed.zh-TW", 16);
2365 
2366 /*
2367  * A value greater than zero enables font size inflation for
2368  * pan-and-zoom UIs, so that the fonts in a block are at least the size
2369  * that, if a block's width is scaled to match the device's width, the
2370  * fonts in the block are big enough that at most the pref value ems of
2371  * text fit in *the width of the device*.
2372  *
2373  * When both this pref and the next are set, the larger inflation is
2374  * used.
2375  */
2376 pref("font.size.inflation.emPerLine", 0);
2377 /*
2378  * A value greater than zero enables font size inflation for
2379  * pan-and-zoom UIs, so that if a block's width is scaled to match the
2380  * device's width, the fonts in a block are at least the font size
2381  * given.  The value given is in twips, i.e., 1/20 of a point, or 1/1440
2382  * of an inch.
2383  *
2384  * When both this pref and the previous are set, the larger inflation is
2385  * used.
2386  */
2387 pref("font.size.inflation.minTwips", 0);
2388 /*
2389  * In products with multi-mode pan-and-zoom and non-pan-and-zoom UIs,
2390  * this pref forces font inflation to always be enabled in all modes.
2391  * That is, any heuristics used to detect pan-and-zoom
2392  * vs. non-pan-and-zoom modes are disabled and all content is treated
2393  * as pan-and-zoom mode wrt font inflation.
2394  *
2395  * This pref has no effect if font inflation is not enabled through
2396  * either of the prefs above.  It has no meaning in single-mode UIs.
2397  */
2398 pref("font.size.inflation.forceEnabled", false);
2399 /*
2400  * In products with multi-mode pan-and-zoom and non-pan-and-zoom UIs,
2401  * this pref disables font inflation in master-process contexts where
2402  * existing heuristics can't be used determine enabled-ness.
2403  *
2404  * This pref has no effect if font inflation is not enabled through
2405  * either of the prefs above.  The "forceEnabled" pref above overrides
2406  * this pref.
2407  */
2408 pref("font.size.inflation.disabledInMasterProcess", false);
2409 /*
2410  * Since the goal of font size inflation is to avoid having to
2411  * repeatedly scroll side to side to read a block of text, and there are
2412  * a number of page layouts where a relatively small chunk of text is
2413  * better of not being inflated according to the same algorithm we use
2414  * for larger chunks of text, we want a threshold for an amount of text
2415  * that triggers font size inflation.  This preference controls that
2416  * threshold.
2417  *
2418  * It controls the threshold used within an *approximation* of the
2419  * number of lines of text we use.  In particular, if we assume that
2420  * each character (collapsing collapsible whitespace) has a width the
2421  * same as the em-size of the font (when, normally, it's actually quite
2422  * a bit smaller on average), this preference gives the percentage of a
2423  * number of lines of text we'd need to trigger inflation.  This means
2424  * that a percentage of 100 means that we'd need a number of characters
2425  * (we know the font size and the width) equivalent to one line of
2426  * square text (which is actually a lot less than a real line of text).
2427  *
2428  * A value of 0 means there's no character length threshold.
2429  */
2430 pref("font.size.inflation.lineThreshold", 400);
2431 
2432 /*
2433  * Defines the font size inflation mapping intercept parameter.
2434  *
2435  * Font size inflation computes a minimum font size, m, based on
2436  * other preferences (see font.size.inflation.minTwips and
2437  * font.size.inflation.emPerLine, above) and the width of the
2438  * frame in which the text resides. Using this minimum, a specified
2439  * font size, s, is mapped to an inflated font size, i, using an
2440  * equation that varies depending on the value of the font size
2441  * inflation mapping intercept parameter, P:
2442  *
2443  * If the intercept parameter is negative, then the following mapping
2444  * function is used:
2445  *
2446  * i = m + s
2447  *
2448  * If the intercept parameter is non-negative, then the mapping function
2449  * is a function such that its graph meets the graph of i = s at the
2450  * point where both i and s are (1 + P/2) * m for values of s that are
2451  * large enough. This means that when s=0, i is always equal to m.
2452  */
2453 pref("font.size.inflation.mappingIntercept", 1);
2454 
2455 
2456 /*
2457  * This controls the percentage that fonts will be inflated, if font
2458  * size inflation is enabled. Essentially, if we have a specified font
2459  * size, s, and an inflated font size, i, this specifies that the ratio
2460  * i/s * 100 should never exceed the value of this preference.
2461  *
2462  * In order for this preference to have any effect, its value must be
2463  * greater than 100, since font inflation can never decrease the ratio
2464  * i/s.
2465  */
2466 pref("font.size.inflation.maxRatio", 0);
2467 
2468 /*
2469  * When enabled, the touch.radius and mouse.radius prefs allow events to be dispatched
2470  * to nearby elements that are sensitive to the event. See PositionedEventTargeting.cpp.
2471  * The 'mm' prefs define a rectangle around the nominal event target point within which
2472  * we will search for suitable elements. 'visitedWeight' is a percentage weight;
2473  * a value > 100 makes a visited link be treated as further away from the event target
2474  * than it really is, while a value < 100 makes a visited link be treated as closer
2475  * to the event target than it really is.
2476  */
2477 pref("ui.touch.radius.enabled", false);
2478 pref("ui.touch.radius.leftmm", 8);
2479 pref("ui.touch.radius.topmm", 12);
2480 pref("ui.touch.radius.rightmm", 8);
2481 pref("ui.touch.radius.bottommm", 4);
2482 pref("ui.touch.radius.visitedWeight", 120);
2483 
2484 pref("ui.mouse.radius.enabled", false);
2485 pref("ui.mouse.radius.leftmm", 8);
2486 pref("ui.mouse.radius.topmm", 12);
2487 pref("ui.mouse.radius.rightmm", 8);
2488 pref("ui.mouse.radius.bottommm", 4);
2489 pref("ui.mouse.radius.visitedWeight", 120);
2490 
2491 // When true, the ui.mouse.radius.* prefs will only affect simulated mouse events generated by touch input.
2492 // When false, the prefs will be used for all mouse events.
2493 pref("ui.mouse.radius.inputSource.touchOnly", true);
2494 
2495 #ifdef XP_WIN
2496 
2497 pref("font.name.serif.ar", "Times New Roman");
2498 pref("font.name.sans-serif.ar", "Arial");
2499 pref("font.name.monospace.ar", "Courier New");
2500 pref("font.name.cursive.ar", "Comic Sans MS");
2501 
2502 pref("font.name.serif.el", "Times New Roman");
2503 pref("font.name.sans-serif.el", "Arial");
2504 pref("font.name.monospace.el", "Courier New");
2505 pref("font.name.cursive.el", "Comic Sans MS");
2506 
2507 pref("font.name.serif.he", "Narkisim");
2508 pref("font.name.sans-serif.he", "Arial");
2509 pref("font.name.monospace.he", "Fixed Miriam Transparent");
2510 pref("font.name.cursive.he", "Guttman Yad");
2511 pref("font.name-list.serif.he", "Narkisim, David");
2512 pref("font.name-list.monospace.he", "Fixed Miriam Transparent, Miriam Fixed, Rod, Courier New");
2513 pref("font.name-list.cursive.he", "Guttman Yad, Ktav, Arial");
2514 
2515 pref("font.name.serif.ja", "MS PMincho");
2516 pref("font.name.sans-serif.ja", "MS PGothic");
2517 pref("font.name.monospace.ja", "MS Gothic");
2518 pref("font.name-list.serif.ja", "MS PMincho, MS Mincho, MS PGothic, MS Gothic,Meiryo");
2519 pref("font.name-list.sans-serif.ja", "MS PGothic, MS Gothic, MS PMincho, MS Mincho,Meiryo");
2520 pref("font.name-list.monospace.ja", "MS Gothic, MS Mincho, MS PGothic, MS PMincho,Meiryo");
2521 
2522 pref("font.name.serif.ko", "Batang");
2523 pref("font.name.sans-serif.ko", "Gulim");
2524 pref("font.name.monospace.ko", "GulimChe");
2525 pref("font.name.cursive.ko", "Gungsuh");
2526 
2527 pref("font.name-list.serif.ko", "Batang, Gulim");
2528 pref("font.name-list.sans-serif.ko", "Gulim");
2529 pref("font.name-list.monospace.ko", "GulimChe");
2530 pref("font.name-list.cursive.ko", "Gungsuh");
2531 
2532 pref("font.name.serif.th", "Tahoma");
2533 pref("font.name.sans-serif.th", "Tahoma");
2534 pref("font.name.monospace.th", "Tahoma");
2535 pref("font.name.cursive.th", "Tahoma");
2536 
2537 pref("font.name.serif.tr", "Times New Roman");
2538 pref("font.name.sans-serif.tr", "Arial");
2539 pref("font.name.monospace.tr", "Courier New");
2540 pref("font.name.cursive.tr", "Comic Sans MS");
2541 
2542 pref("font.name.serif.x-baltic", "Times New Roman");
2543 pref("font.name.sans-serif.x-baltic", "Arial");
2544 pref("font.name.monospace.x-baltic", "Courier New");
2545 pref("font.name.cursive.x-baltic", "Comic Sans MS");
2546 
2547 pref("font.name.serif.x-central-euro", "Times New Roman");
2548 pref("font.name.sans-serif.x-central-euro", "Arial");
2549 pref("font.name.monospace.x-central-euro", "Courier New");
2550 pref("font.name.cursive.x-central-euro", "Comic Sans MS");
2551 
2552 pref("font.name.serif.x-cyrillic", "Times New Roman");
2553 pref("font.name.sans-serif.x-cyrillic", "Arial");
2554 pref("font.name.monospace.x-cyrillic", "Courier New");
2555 pref("font.name.cursive.x-cyrillic", "Comic Sans MS");
2556 
2557 pref("font.name.serif.x-unicode", "Times New Roman");
2558 pref("font.name.sans-serif.x-unicode", "Arial");
2559 pref("font.name.monospace.x-unicode", "Courier New");
2560 pref("font.name.cursive.x-unicode", "Comic Sans MS");
2561 
2562 pref("font.name.serif.x-western", "Times New Roman");
2563 pref("font.name.sans-serif.x-western", "Arial");
2564 pref("font.name.monospace.x-western", "Courier New");
2565 pref("font.name.cursive.x-western", "Comic Sans MS");
2566 
2567 pref("font.name.serif.zh-CN", "SimSun");
2568 pref("font.name.sans-serif.zh-CN", "SimSun");
2569 pref("font.name.monospace.zh-CN", "SimSun");
2570 pref("font.name-list.serif.zh-CN", "MS Song, SimSun, SimSun-ExtB");
2571 pref("font.name-list.sans-serif.zh-CN", "MS Song, SimSun, SimSun-ExtB");
2572 pref("font.name-list.monospace.zh-CN", "MS Song, SimSun, SimSun-ExtB");
2573 
2574 // Per Taiwanese users' demand. They don't want to use TC fonts for
2575 // rendering Latin letters. (bug 88579)
2576 pref("font.name.serif.zh-TW", "Times New Roman");
2577 pref("font.name.sans-serif.zh-TW", "Arial");
2578 pref("font.name.monospace.zh-TW", "MingLiU");
2579 pref("font.name-list.serif.zh-TW", "PMingLiu, MingLiU, MingLiU-ExtB");
2580 pref("font.name-list.sans-serif.zh-TW", "PMingLiU, MingLiU, MingLiU-ExtB");
2581 pref("font.name-list.monospace.zh-TW", "MingLiU, MingLiU-ExtB");
2582 
2583 // hkscsm3u.ttf (HKSCS-2001) :  http://www.microsoft.com/hk/hkscs
2584 // Hong Kong users have the same demand about glyphs for Latin letters (bug 88579)
2585 pref("font.name.serif.zh-HK", "Times New Roman");
2586 pref("font.name.sans-serif.zh-HK", "Arial");
2587 pref("font.name.monospace.zh-HK", "MingLiu_HKSCS");
2588 pref("font.name-list.serif.zh-HK", "MingLiu_HKSCS, Ming(for ISO10646), MingLiU, MingLiU_HKSCS-ExtB");
2589 pref("font.name-list.sans-serif.zh-HK", "MingLiU_HKSCS, Ming(for ISO10646), MingLiU, MingLiU_HKSCS-ExtB");
2590 pref("font.name-list.monospace.zh-HK", "MingLiU_HKSCS, Ming(for ISO10646), MingLiU, MingLiU_HKSCS-ExtB");
2591 
2592 pref("font.name.serif.x-devanagari", "Kokila");
2593 pref("font.name.sans-serif.x-devanagari", "Nirmala UI");
2594 pref("font.name.monospace.x-devanagari", "Mangal");
2595 pref("font.name-list.serif.x-devanagari", "Kokila, Raghindi");
2596 pref("font.name-list.sans-serif.x-devanagari", "Nirmala UI, Mangal");
2597 pref("font.name-list.monospace.x-devanagari", "Mangal, Nirmala UI");
2598 
2599 pref("font.name.serif.x-tamil", "Latha");
2600 pref("font.name.sans-serif.x-tamil", "Code2000");
2601 pref("font.name.monospace.x-tamil", "Latha");
2602 pref("font.name-list.serif.x-tamil", "Latha, Code2000");
2603 pref("font.name-list.monospace.x-tamil", "Latha, Code2000");
2604 
2605 # http://www.alanwood.net/unicode/fonts.html
2606 
2607 pref("font.name.serif.x-armn", "Sylfaen");
2608 pref("font.name.sans-serif.x-armn", "Arial AMU");
2609 pref("font.name.monospace.x-armn", "Arial AMU");
2610 pref("font.name-list.serif.x-armn", "Sylfaen,Arial Unicode MS, Code2000");
2611 pref("font.name-list.monospace.x-armn", "Arial AMU, Arial Unicode MS, Code2000");
2612 
2613 pref("font.name.serif.x-beng", "Vrinda");
2614 pref("font.name.sans-serif.x-beng", "Vrinda");
2615 pref("font.name.monospace.x-beng", "Mitra Mono");
2616 pref("font.name-list.serif.x-beng", "Vrinda, Akaash, Likhan, Ekushey Punarbhaba, Code2000, Arial Unicode MS");
2617 pref("font.name-list.sans-serif.x-beng", "Vrinda, Akaash, Likhan, Ekushey Punarbhaba, Code2000, Arial Unicode MS");
2618 pref("font.name-list.monospace.x-beng", "Likhan, Mukti Narrow, Code2000, Arial Unicode MS");
2619 
2620 pref("font.name.serif.x-cans", "Aboriginal Serif");
2621 pref("font.name.sans-serif.x-cans", "Aboriginal Sans");
2622 pref("font.name.monospace.x-cans", "Aboriginal Sans");
2623 pref("font.name-list.serif.x-cans", "Aboriginal Serif, BJCree Uni");
2624 pref("font.name-list.monospace.x-cans", "Aboriginal Sans, OskiDakelh, Pigiarniq, Uqammaq");
2625 
2626 pref("font.name.serif.x-ethi", "Visual Geez Unicode");
2627 pref("font.name.sans-serif.x-ethi", "GF Zemen Unicode");
2628 pref("font.name.cursive.x-ethi", "Visual Geez Unicode Title");
2629 pref("font.name.monospace.x-ethi", "Ethiopia Jiret");
2630 pref("font.name-list.serif.x-ethi", "Visual Geez Unicode, Visual Geez Unicode Agazian, Code2000");
2631 pref("font.name-list.monospace.x-ethi", "Ethiopia Jiret, Code2000");
2632 
2633 pref("font.name.serif.x-geor", "Sylfaen");
2634 pref("font.name.sans-serif.x-geor", "BPG Classic 99U");
2635 pref("font.name.monospace.x-geor", "Code2000");
2636 pref("font.name-list.serif.x-geor", "Sylfaen, BPG Paata Khutsuri U, TITUS Cyberbit Basic");
2637 pref("font.name-list.monospace.x-geor", "BPG Classic 99U, Code2000, Arial Unicode MS");
2638 
2639 pref("font.name.serif.x-gujr", "Shruti");
2640 pref("font.name.sans-serif.x-gujr", "Shruti");
2641 pref("font.name.monospace.x-gujr", "Code2000");
2642 pref("font.name-list.serif.x-gujr", "Shruti, Code2000, Arial Unicode MS");
2643 pref("font.name-list.monospace.x-gujr", "Code2000, Shruti, Arial Unicode MS");
2644 
2645 pref("font.name.serif.x-guru", "Raavi");
2646 pref("font.name.sans-serif.x-guru", "Code2000");
2647 pref("font.name.monospace.x-guru", "Code2000");
2648 pref("font.name-list.serif.x-guru", "Raavi, Saab, Code2000, Arial Unicode MS");
2649 pref("font.name-list.monospace.x-guru", "Code2000, Raavi, Saab, Arial Unicode MS");
2650 
2651 pref("font.name.serif.x-khmr", "PhnomPenh OT");
2652 pref("font.name.sans-serif.x-khmr", "Khmer OS");
2653 pref("font.name.monospace.x-khmr", "Code2000");
2654 pref("font.name-list.serif.x-khmr", "PhnomPenh OT,.Mondulkiri U GR 1.5, Khmer OS");
2655 pref("font.name-list.monospace.x-khmr", "Code2000, Khmer OS, Khmer OS System");
2656 
2657 pref("font.name.serif.x-mlym", "Rachana_w01");
2658 pref("font.name.sans-serif.x-mlym", "Rachana_w01");
2659 pref("font.name.monospace.x-mlym", "Rachana_w01");
2660 pref("font.name-list.serif.x-mlym", "AnjaliOldLipi, Kartika, ThoolikaUnicode, Code2000, Arial Unicode MS");
2661 pref("font.name-list.sans-serif.x-mlym", "AnjaliOldLipi, Kartika, ThoolikaUnicode, Code2000, Arial Unicode MS");
2662 pref("font.name-list.monospace.x-mlym", "AnjaliOldLipi, Kartika, ThoolikaUnicode, Code2000, Arial Unicode MS");
2663 
2664 pref("font.name.serif.x-orya", "ori1Uni");
2665 pref("font.name.sans-serif.x-orya", "ori1Uni");
2666 pref("font.name.monospace.x-orya", "ori1Uni");
2667 pref("font.name-list.serif.x-orya", "Kalinga, ori1Uni, Code2000, Arial Unicode MS");
2668 pref("font.name-list.sans-serif.x-orya", "Kalinga, ori1Uni, Code2000, Arial Unicode MS");
2669 pref("font.name-list.monospace.x-orya", "Kalinga, ori1Uni, Code2000, Arial Unicode MS");
2670 
2671 pref("font.name.serif.x-telu", "Gautami");
2672 pref("font.name.sans-serif.x-telu", "Gautami");
2673 pref("font.name.monospace.x-telu", "Gautami");
2674 pref("font.name-list.serif.x-telu", "Gautami, Akshar Unicode, Code2000, Arial Unicode MS");
2675 pref("font.name-list.sans-serif.x-telu", "Gautami, Akshar Unicode, Code2000, Arial Unicode MS");
2676 pref("font.name-list.monospace.x-telu", "Gautami, Akshar Unicode, Code2000, Arial Unicode MS");
2677 
2678 pref("font.name.serif.x-knda", "Tunga");
2679 pref("font.name.sans-serif.x-knda", "Tunga");
2680 pref("font.name.monospace.x-knda", "Tunga");
2681 pref("font.name-list.serif.x-knda", "Tunga, AksharUnicode, Code2000, Arial Unicode MS");
2682 pref("font.name-list.sans-serif.x-knda", "Tunga, AksharUnicode, Code2000, Arial Unicode MS");
2683 pref("font.name-list.monospace.x-knda", "Tunga, AksharUnicode, Code2000, Arial Unicode MS");
2684 
2685 pref("font.name.serif.x-sinh", "Iskoola Pota");
2686 pref("font.name.sans-serif.x-sinh", "Iskoola Pota");
2687 pref("font.name.monospace.x-sinh", "Iskoola Pota");
2688 pref("font.name-list.serif.x-sinh", "Iskoola Pota, AksharUnicode");
2689 pref("font.name-list.sans-serif.x-sinh", "Iskoola Pota, AksharUnicode");
2690 pref("font.name-list.monospace.x-sinh", "Iskoola Pota, AksharUnicode");
2691 
2692 pref("font.name.serif.x-tibt", "Tibetan Machine Uni");
2693 pref("font.name.sans-serif.x-tibt", "Tibetan Machine Uni");
2694 pref("font.name.monospace.x-tibt", "Tibetan Machine Uni");
2695 pref("font.name-list.serif.x-tibt", "Tibetan Machine Uni, Jomolhari, Microsoft Himalaya");
2696 pref("font.name-list.sans-serif.x-tibt", "Tibetan Machine Uni, Jomolhari, Microsoft Himalaya");
2697 pref("font.name-list.monospace.x-tibt", "Tibetan Machine Uni, Jomolhari, Microsoft Himalaya");
2698 
2699 pref("font.minimum-size.th", 10);
2700 
2701 pref("font.default.x-devanagari", "sans-serif");
2702 // We have special support for Monotype Symbol on Windows.
2703 pref("font.mathfont-family", "MathJax_Main, STIXNonUnicode, STIXSizeOneSym, STIXGeneral, Asana Math, Symbol, DejaVu Sans, Cambria Math");
2704 
2705 // cleartype settings - false implies default system settings
2706 
2707 // use cleartype rendering for downloadable fonts (win xp only)
2708 pref("gfx.font_rendering.cleartype.use_for_downloadable_fonts", true);
2709 
2710 // use cleartype rendering for all fonts always (win xp only)
2711 pref("gfx.font_rendering.cleartype.always_use_for_content", false);
2712 
2713 // ClearType tuning parameters for directwrite/d2d.
2714 //
2715 // Allows overriding of underlying registry values in:
2716 //   HKCU/Software/Microsoft/Avalon.Graphics/<display> (contrast and level)
2717 //   HKLM/Software/Microsoft/Avalon.Graphics/<display> (gamma, pixel structure)
2718 // and selection of the ClearType/antialiasing mode.
2719 //
2720 // A value of -1 implies use the default value, otherwise value ranges
2721 // follow registry settings:
2722 //   gamma [1000, 2200]  default: based on screen, typically 2200 (== 2.2)
2723 //   enhanced contrast [0, 1000] default: 50
2724 //   cleartype level [0, 100] default: 100
2725 //   pixel structure [0, 2] default: 0 (flat/RGB/BGR)
2726 //   rendering mode [0, 5] default: 0
2727 //     0 = use default for font & size;
2728 //     1 = aliased;
2729 //     2 = GDI Classic;
2730 //     3 = GDI Natural Widths;
2731 //     4 = Natural;
2732 //     5 = Natural Symmetric
2733 //
2734 // See:
2735 //   http://msdn.microsoft.com/en-us/library/aa970267.aspx
2736 //   http://msdn.microsoft.com/en-us/library/dd368190%28v=VS.85%29.aspx
2737 // Note: DirectWrite uses the "Enhanced Contrast Level" value rather than the
2738 // "Text Contrast Level" value
2739 
2740 pref("gfx.font_rendering.cleartype_params.gamma", -1);
2741 pref("gfx.font_rendering.cleartype_params.enhanced_contrast", -1);
2742 pref("gfx.font_rendering.cleartype_params.cleartype_level", -1);
2743 pref("gfx.font_rendering.cleartype_params.pixel_structure", -1);
2744 pref("gfx.font_rendering.cleartype_params.rendering_mode", -1);
2745 
2746 // A comma-separated list of font family names. Fonts in these families will
2747 // be forced to use "GDI Classic" ClearType mode, provided the value
2748 // of gfx.font_rendering.cleartype_params.rendering_mode is -1
2749 // (i.e. a specific rendering_mode has not been explicitly set).
2750 // Currently we apply this setting to the sans-serif Microsoft "core Web fonts".
2751 pref("gfx.font_rendering.cleartype_params.force_gdi_classic_for_families",
2752      "Arial,Consolas,Courier New,Microsoft Sans Serif,Segoe UI,Tahoma,Trebuchet MS,Verdana");
2753 // The maximum size at which we will force GDI classic mode using
2754 // force_gdi_classic_for_families.
2755 pref("gfx.font_rendering.cleartype_params.force_gdi_classic_max_size", 15);
2756 
2757 pref("ui.key.menuAccessKeyFocuses", true);
2758 
2759 // override double-click word selection behavior.
2760 pref("layout.word_select.eat_space_to_next_word", true);
2761 
2762 // scrollbar snapping region
2763 pref("slider.snapMultiplier", 6);
2764 
2765 // print_extra_margin enables platforms to specify an extra gap or margin
2766 // around the content of the page for Print Preview only
2767 pref("print.print_extra_margin", 90); // twips (90 twips is an eigth of an inch)
2768 
2769 // Whether to extend the native dialog with information on printing frames.
2770 pref("print.extend_native_print_dialog", true);
2771 
2772 // Locate plugins by scanning the Adobe Acrobat installation directory with a minimum version
2773 pref("plugin.scan.Acrobat", "5.0");
2774 
2775 // Locate plugins by scanning the Quicktime installation directory with a minimum version
2776 pref("plugin.scan.Quicktime", "5.0");
2777 
2778 // Locate and scan the Window Media Player installation directory for plugins with a minimum version
2779 pref("plugin.scan.WindowsMediaPlayer", "7.0");
2780 
2781 // Locate plugins by the directories specified in the Windows registry for PLIDs
2782 // Which is currently HKLM\Software\MozillaPlugins\xxxPLIDxxx\Path
2783 pref("plugin.scan.plid.all", true);
2784 
2785 // Allow the new AsyncDrawing mode to be used for plugins.
2786 pref("plugin.allow.asyncdrawing", false);
2787 
2788 // Help Windows NT, 2000, and XP dialup a RAS connection
2789 // when a network address is unreachable.
2790 pref("network.autodial-helper.enabled", true);
2791 
2792 // Switch the keyboard layout per window
2793 pref("intl.keyboard.per_window_layout", false);
2794 
2795 #ifdef NS_ENABLE_TSF
2796 // Enable/Disable TSF support on Vista or later.
2797 pref("intl.tsf.enable", false);
2798 // Force enable TSF even on WinXP or WinServer 2003.
2799 // Be aware, TSF framework on prior to Vista is not enough stable.
2800 pref("intl.tsf.force_enable", false);
2801 
2802 // Support IMEs implemented with IMM in TSF mode.
2803 pref("intl.tsf.support_imm", true);
2804 
2805 // Enables/Disables hack for specific TIP.
2806 
2807 // Whether creates native caret for ATOK or not.
2808 pref("intl.tsf.hack.atok.create_native_caret", true);
2809 #endif
2810 
2811 // See bug 448927, on topmost panel, some IMEs are not usable on Windows.
2812 pref("ui.panel.default_level_parent", false);
2813 
2814 pref("mousewheel.system_scroll_override_on_root_content.enabled", true);
2815 
2816 // High resolution scrolling with supported mouse drivers on Vista or later.
2817 pref("mousewheel.enable_pixel_scrolling", true);
2818 
2819 // If your mouse drive sends WM_*SCROLL messages when you turn your mouse wheel,
2820 // set this to true.  Then, gecko processes them as mouse wheel messages.
2821 pref("mousewheel.emulate_at_wm_scroll", false);
2822 
2823 // Enables or disabled the TrackPoint hack, -1 is autodetect, 0 is off,
2824 // and 1 is on.  Set this to 1 if TrackPoint scrolling is not working.
2825 pref("ui.trackpoint_hack.enabled", -1);
2826 
2827 // Setting this to a non-empty string overrides the Win32 "window class" used
2828 // for "normal" windows. Setting this to MozillaUIWindowClass might make
2829 // some trackpad drivers behave better.
2830 pref("ui.window_class_override", "");
2831 
2832 // Enables or disables the Elantech gesture hacks.  -1 is autodetect, 0 is off,
2833 // and 1 is on.  Set this to 1 if three-finger swipe gestures do not cause
2834 // page back/forward actions, or if pinch-to-zoom does not work.
2835 pref("ui.elantech_gesture_hacks.enabled", -1);
2836 
2837 # XP_WIN
2838 #endif
2839 
2840 #ifdef XP_MACOSX
2841 // Mac specific preference defaults
2842 pref("browser.drag_out_of_frame_style", 1);
2843 pref("ui.key.saveLink.shift", false); // true = shift, false = meta
2844 
2845 // default fonts (in UTF8 and using canonical names)
2846 // to determine canonical font names, use a debug build and
2847 // enable NSPR logging for module fontInfoLog:5
2848 // canonical names immediately follow '(fontinit) family:' in the log
2849 
2850 pref("font.name.serif.ar", "Al Bayan");
2851 pref("font.name.sans-serif.ar", "Geeza Pro");
2852 pref("font.name.monospace.ar", "Geeza Pro");
2853 pref("font.name.cursive.ar", "DecoType Naskh");
2854 pref("font.name.fantasy.ar", "KufiStandardGK");
2855 pref("font.name-list.serif.ar", "Al Bayan");
2856 pref("font.name-list.sans-serif.ar", "Geeza Pro");
2857 pref("font.name-list.monospace.ar", "Geeza Pro");
2858 pref("font.name-list.cursive.ar", "DecoType Naskh");
2859 pref("font.name-list.fantasy.ar", "KufiStandardGK");
2860 
2861 pref("font.name.serif.el", "Times");
2862 pref("font.name.sans-serif.el", "Helvetica");
2863 pref("font.name.monospace.el", "Courier New");
2864 pref("font.name.cursive.el", "Lucida Grande");
2865 pref("font.name.fantasy.el", "Lucida Grande");
2866 pref("font.name-list.serif.el", "Times,Times New Roman");
2867 pref("font.name-list.sans-serif.el", "Helvetica,Lucida Grande");
2868 pref("font.name-list.monospace.el", "Courier New,Lucida Grande");
2869 pref("font.name-list.cursive.el", "Times,Lucida Grande");
2870 pref("font.name-list.fantasy.el", "Times,Lucida Grande");
2871 
2872 pref("font.name.serif.he", "Times New Roman");
2873 pref("font.name.sans-serif.he", "Arial");
2874 pref("font.name.monospace.he", "Courier New");
2875 pref("font.name.cursive.he", "Times New Roman");
2876 pref("font.name.fantasy.he", "Times New Roman");
2877 pref("font.name-list.serif.he", "Times New Roman");
2878 pref("font.name-list.sans-serif.he", "Arial");
2879 pref("font.name-list.monospace.he", "Courier New");
2880 pref("font.name-list.cursive.he", "Times New Roman");
2881 pref("font.name-list.fantasy.he", "Times New Roman");
2882 
2883 pref("font.name.serif.ja", "Hiragino Mincho ProN");
2884 pref("font.name.sans-serif.ja", "Hiragino Kaku Gothic ProN");
2885 pref("font.name.monospace.ja", "Osaka-Mono");
2886 pref("font.name-list.serif.ja", "Hiragino Mincho ProN,Hiragino Mincho Pro");
2887 pref("font.name-list.sans-serif.ja", "Hiragino Kaku Gothic ProN,Hiragino Kaku Gothic Pro");
2888 pref("font.name-list.monospace.ja", "Osaka-Mono");
2889 
2890 pref("font.name.serif.ko", "AppleMyungjo");
2891 pref("font.name.sans-serif.ko", "Apple SD Gothic Neo");
2892 pref("font.name.monospace.ko", "Apple SD Gothic Neo");
2893 pref("font.name-list.serif.ko", "AppleMyungjo");
2894 pref("font.name-list.sans-serif.ko", "Apple SD Gothic Neo,AppleGothic");
2895 pref("font.name-list.monospace.ko", "Apple SD Gothic Neo,AppleGothic");
2896 
2897 pref("font.name.serif.th", "Thonburi");
2898 pref("font.name.sans-serif.th", "Thonburi");
2899 pref("font.name.monospace.th", "Ayuthaya");
2900 pref("font.name-list.serif.th", "Thonburi");
2901 pref("font.name-list.sans-serif.th", "Thonburi");
2902 pref("font.name-list.monospace.th", "Ayuthaya");
2903 
2904 pref("font.name.serif.tr", "Times");
2905 pref("font.name.sans-serif.tr", "Helvetica");
2906 pref("font.name.monospace.tr", "Courier");
2907 pref("font.name.cursive.tr", "Apple Chancery");
2908 pref("font.name.fantasy.tr", "Papyrus");
2909 pref("font.name-list.serif.tr", "Times");
2910 pref("font.name-list.sans-serif.tr", "Helvetica");
2911 pref("font.name-list.monospace.tr", "Courier");
2912 pref("font.name-list.cursive.tr", "Apple Chancery");
2913 pref("font.name-list.fantasy.tr", "Papyrus");
2914 
2915 pref("font.name.serif.x-armn", "Mshtakan");
2916 pref("font.name.sans-serif.x-armn", "Mshtakan");
2917 pref("font.name.monospace.x-armn", "Mshtakan");
2918 pref("font.name-list.serif.x-armn", "Mshtakan");
2919 pref("font.name-list.sans-serif.x-armn", "Mshtakan");
2920 pref("font.name-list.monospace.x-armn", "Mshtakan");
2921 
2922 pref("font.name.serif.x-baltic", "Times");
2923 pref("font.name.sans-serif.x-baltic", "Helvetica");
2924 pref("font.name.monospace.x-baltic", "Courier");
2925 pref("font.name.cursive.x-baltic", "Apple Chancery");
2926 pref("font.name.fantasy.x-baltic", "Papyrus");
2927 pref("font.name-list.serif.x-baltic", "Times");
2928 pref("font.name-list.sans-serif.x-baltic", "Helvetica");
2929 pref("font.name-list.monospace.x-baltic", "Courier");
2930 pref("font.name-list.cursive.x-baltic", "Apple Chancery");
2931 pref("font.name-list.fantasy.x-baltic", "Papyrus");
2932 
2933 // SolaimanLipi, Rupali http://ekushey.org/?page/mac_download
2934 pref("font.name.serif.x-beng", "Bangla MN");
2935 pref("font.name.sans-serif.x-beng", "Bangla Sangam MN");
2936 pref("font.name.monospace.x-beng", "Bangla Sangam MN");
2937 pref("font.name-list.serif.x-beng", "Bangla MN");
2938 pref("font.name-list.sans-serif.x-beng", "Bangla Sangam MN");
2939 pref("font.name-list.monospace.x-beng", "Bangla Sangam MN");
2940 
2941 pref("font.name.serif.x-cans", "Euphemia UCAS");
2942 pref("font.name.sans-serif.x-cans", "Euphemia UCAS");
2943 pref("font.name.monospace.x-cans", "Euphemia UCAS");
2944 pref("font.name-list.serif.x-cans", "Euphemia UCAS");
2945 pref("font.name-list.sans-serif.x-cans", "Euphemia UCAS");
2946 pref("font.name-list.monospace.x-cans", "Euphemia UCAS");
2947 
2948 pref("font.name.serif.x-central-euro", "Times");
2949 pref("font.name.sans-serif.x-central-euro", "Helvetica");
2950 pref("font.name.monospace.x-central-euro", "Courier");
2951 pref("font.name.cursive.x-central-euro", "Apple Chancery");
2952 pref("font.name.fantasy.x-central-euro", "Papyrus");
2953 pref("font.name-list.serif.x-central-euro", "Times");
2954 pref("font.name-list.sans-serif.x-central-euro", "Helvetica");
2955 pref("font.name-list.monospace.x-central-euro", "Courier");
2956 pref("font.name-list.cursive.x-central-euro", "Apple Chancery");
2957 pref("font.name-list.fantasy.x-central-euro", "Papyrus");
2958 
2959 pref("font.name.serif.x-cyrillic", "Times");
2960 pref("font.name.sans-serif.x-cyrillic", "Helvetica");
2961 pref("font.name.monospace.x-cyrillic", "Monaco");
2962 pref("font.name.cursive.x-cyrillic", "Geneva");
2963 pref("font.name.fantasy.x-cyrillic", "Charcoal CY");
2964 pref("font.name-list.serif.x-cyrillic", "Times,Times New Roman");
2965 pref("font.name-list.sans-serif.x-cyrillic", "Helvetica,Arial");
2966 pref("font.name-list.monospace.x-cyrillic", "Monaco,Courier New");
2967 pref("font.name-list.cursive.x-cyrillic", "Geneva");
2968 pref("font.name-list.fantasy.x-cyrillic", "Charcoal CY");
2969 
2970 pref("font.name.serif.x-devanagari", "Devanagari MT");
2971 pref("font.name.sans-serif.x-devanagari", "Devanagari Sangam MN");
2972 pref("font.name.monospace.x-devanagari", "Devanagari Sangam MN");
2973 pref("font.name-list.serif.x-devanagari", "Devanagari MT");
2974 pref("font.name-list.sans-serif.x-devanagari", "Devanagari Sangam MN,Devanagari MT");
2975 pref("font.name-list.monospace.x-devanagari", "Devanagari Sangam MN,Devanagari MT");
2976 
2977 // Abyssinica SIL http://scripts.sil.org/AbyssinicaSIL_Download
2978 pref("font.name.serif.x-ethi", "Kefa");
2979 pref("font.name.sans-serif.x-ethi", "Kefa");
2980 pref("font.name.monospace.x-ethi", "Kefa");
2981 pref("font.name-list.serif.x-ethi", "Kefa,Abyssinica SIL");
2982 pref("font.name-list.sans-serif.x-ethi", "Kefa,Abyssinica SIL");
2983 pref("font.name-list.monospace.x-ethi", "Kefa,Abyssinica SIL");
2984 
2985 // no suitable fonts for georgian ship with mac os x
2986 // however some can be freely downloaded
2987 // TITUS Cyberbit Basic http://titus.fkidg1.uni-frankfurt.de/unicode/tituut.asp
2988 // Zuzumbo http://homepage.mac.com/rsiradze/FileSharing91.html
2989 pref("font.name.serif.x-geor", "TITUS Cyberbit Basic");
2990 pref("font.name.sans-serif.x-geor", "Zuzumbo");
2991 pref("font.name.monospace.x-geor", "Zuzumbo");
2992 pref("font.name-list.serif.x-geor", "TITUS Cyberbit Basic");
2993 pref("font.name-list.sans-serif.x-geor", "Zuzumbo");
2994 pref("font.name-list.monospace.x-geor", "Zuzumbo");
2995 
2996 pref("font.name.serif.x-gujr", "Gujarati MT");
2997 pref("font.name.sans-serif.x-gujr", "Gujarati Sangam MN");
2998 pref("font.name.monospace.x-gujr", "Gujarati Sangam MN");
2999 pref("font.name-list.serif.x-gujr", "Gujarati MT");
3000 pref("font.name-list.sans-serif.x-gujr", "Gujarati Sangam MN,Gujarati MT");
3001 pref("font.name-list.monospace.x-gujr", "Gujarati Sangam MN,Gujarati MT");
3002 
3003 pref("font.name.serif.x-guru", "Gurmukhi MT");
3004 pref("font.name.sans-serif.x-guru", "Gurmukhi MT");
3005 pref("font.name.monospace.x-guru", "Gurmukhi MT");
3006 pref("font.name-list.serif.x-guru", "Gurmukhi MT");
3007 pref("font.name-list.sans-serif.x-guru", "Gurmukhi MT");
3008 pref("font.name-list.monospace.x-guru", "Gurmukhi MT");
3009 
3010 pref("font.name.serif.x-khmr", "Khmer MN");
3011 pref("font.name.sans-serif.x-khmr", "Khmer Sangam MN");
3012 pref("font.name.monospace.x-khmr", "Khmer Sangam MN");
3013 pref("font.name-list.serif.x-khmr", "Khmer MN");
3014 pref("font.name-list.sans-serif.x-khmr", "Khmer Sangam MN");
3015 pref("font.name-list.monospace.x-khmr", "Khmer Sangam MN");
3016 
3017 pref("font.name.serif.x-mlym", "Malayalam MN");
3018 pref("font.name.sans-serif.x-mlym", "Malayalam Sangam MN");
3019 pref("font.name.monospace.x-mlym", "Malayalam Sangam MN");
3020 pref("font.name-list.serif.x-mlym", "Malayalam MN");
3021 pref("font.name-list.sans-serif.x-mlym", "Malayalam Sangam MN");
3022 pref("font.name-list.monospace.x-mlym", "Malayalam Sangam MN");
3023 
3024 pref("font.name.serif.x-orya", "Oriya MN");
3025 pref("font.name.sans-serif.x-orya", "Oriya Sangam MN");
3026 pref("font.name.monospace.x-orya", "Oriya Sangam MN");
3027 pref("font.name-list.serif.x-orya", "Oriya MN");
3028 pref("font.name-list.sans-serif.x-orya", "Oriya Sangam MN");
3029 pref("font.name-list.monospace.x-orya", "Oriya Sangam MN");
3030 
3031 // Pothana http://web.nickshanks.com/typography/telugu/
3032 pref("font.name.serif.x-telu", "Telugu MN");
3033 pref("font.name.sans-serif.x-telu", "Telugu Sangam MN");
3034 pref("font.name.monospace.x-telu", "Telugu Sangam MN");
3035 pref("font.name-list.serif.x-telu", "Telugu MN,Pothana");
3036 pref("font.name-list.sans-serif.x-telu", "Telugu Sangam MN,Pothana");
3037 pref("font.name-list.monospace.x-telu", "Telugu Sangam MN,Pothana");
3038 
3039 // Kedage http://web.nickshanks.com/typography/kannada/
3040 pref("font.name.serif.x-knda", "Kannada MN");
3041 pref("font.name.sans-serif.x-knda", "Kannada Sangam MN");
3042 pref("font.name.monospace.x-knda", "Kannada Sangam MN");
3043 pref("font.name-list.serif.x-knda", "Kannada MN,Kedage");
3044 pref("font.name-list.sans-serif.x-knda", "Kannada Sangam MN,Kedage");
3045 pref("font.name-list.monospace.x-knda", "Kannada Sangam MN,Kedage");
3046 
3047 pref("font.name.serif.x-sinh", "Sinhala MN");
3048 pref("font.name.sans-serif.x-sinh", "Sinhala Sangam MN");
3049 pref("font.name.monospace.x-sinh", "Sinhala Sangam MN");
3050 pref("font.name-list.serif.x-sinh", "Sinhala MN");
3051 pref("font.name-list.sans-serif.x-sinh", "Sinhala Sangam MN");
3052 pref("font.name-list.monospace.x-sinh", "Sinhala Sangam MN");
3053 
3054 pref("font.name.serif.x-tamil", "InaiMathi");
3055 pref("font.name.sans-serif.x-tamil", "InaiMathi");
3056 pref("font.name.monospace.x-tamil", "InaiMathi");
3057 pref("font.name-list.serif.x-tamil", "InaiMathi");
3058 pref("font.name-list.sans-serif.x-tamil", "InaiMathi");
3059 pref("font.name-list.monospace.x-tamil", "InaiMathi");
3060 
3061 // Kailasa ships with mac os x >= 10.5
3062 pref("font.name.serif.x-tibt", "Kailasa");
3063 pref("font.name.sans-serif.x-tibt", "Kailasa");
3064 pref("font.name.monospace.x-tibt", "Kailasa");
3065 pref("font.name-list.serif.x-tibt", "Kailasa");
3066 pref("font.name-list.sans-serif.x-tibt", "Kailasa");
3067 pref("font.name-list.monospace.x-tibt", "Kailasa");
3068 
3069 pref("font.name.serif.x-unicode", "Times");
3070 pref("font.name.sans-serif.x-unicode", "Helvetica");
3071 pref("font.name.monospace.x-unicode", "Courier");
3072 pref("font.name.cursive.x-unicode", "Apple Chancery");
3073 pref("font.name.fantasy.x-unicode", "Papyrus");
3074 pref("font.name-list.serif.x-unicode", "Times");
3075 pref("font.name-list.sans-serif.x-unicode", "Helvetica");
3076 pref("font.name-list.monospace.x-unicode", "Courier");
3077 pref("font.name-list.cursive.x-unicode", "Apple Chancery");
3078 pref("font.name-list.fantasy.x-unicode", "Papyrus");
3079 
3080 pref("font.name.serif.x-western", "Times");
3081 pref("font.name.sans-serif.x-western", "Helvetica");
3082 pref("font.name.monospace.x-western", "Courier");
3083 pref("font.name.cursive.x-western", "Apple Chancery");
3084 pref("font.name.fantasy.x-western", "Papyrus");
3085 pref("font.name-list.serif.x-western", "Times,Times New Roman");
3086 pref("font.name-list.sans-serif.x-western", "Helvetica,Arial");
3087 pref("font.name-list.monospace.x-western", "Courier,Courier New");
3088 pref("font.name-list.cursive.x-western", "Apple Chancery");
3089 pref("font.name-list.fantasy.x-western", "Papyrus");
3090 
3091 pref("font.name.serif.zh-CN", "Times");
3092 pref("font.name.sans-serif.zh-CN", "Helvetica");
3093 pref("font.name.monospace.zh-CN", "Courier");
3094 pref("font.name-list.serif.zh-CN", "Times,STSong,Heiti SC");
3095 pref("font.name-list.sans-serif.zh-CN", "Helvetica,STHeiti,Heiti SC");
3096 pref("font.name-list.monospace.zh-CN", "Courier,STHeiti,Heiti SC");
3097 
3098 pref("font.name.serif.zh-TW", "Times");
3099 pref("font.name.sans-serif.zh-TW", "Helvetica");
3100 pref("font.name.monospace.zh-TW", "Courier");
3101 pref("font.name-list.serif.zh-TW", "Times,LiSong Pro,Heiti TC");
3102 pref("font.name-list.sans-serif.zh-TW", "Helvetica,Heiti TC,LiHei Pro");
3103 pref("font.name-list.monospace.zh-TW", "Courier,Heiti TC,LiHei Pro");
3104 
3105 pref("font.name.serif.zh-HK", "Times");
3106 pref("font.name.sans-serif.zh-HK", "Helvetica");
3107 pref("font.name.monospace.zh-HK", "Courier");
3108 pref("font.name-list.serif.zh-HK", "Times,LiSong Pro,Heiti TC");
3109 pref("font.name-list.sans-serif.zh-HK", "Helvetica,Heiti TC,LiHei Pro");
3110 pref("font.name-list.monospace.zh-HK", "Courier,Heiti TC,LiHei Pro");
3111 
3112 // XP_MACOSX changes to default font sizes
3113 pref("font.minimum-size.th", 10);
3114 pref("font.size.variable.zh-CN", 15);
3115 pref("font.size.variable.zh-HK", 15);
3116 pref("font.size.variable.zh-TW", 15);
3117 
3118 // Apple's Symbol is Unicode so use it
3119 pref("font.mathfont-family", "Latin Modern Math, XITS Math, STIX Math, Cambria Math, Asana Math, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Termes Math, Neo Euler, Lucida Bright Math, MathJax_Main, STIXNonUnicode, STIXSizeOneSym, STIXGeneral, Symbol, DejaVu Sans");
3120 
3121 // individual font faces to be treated as independent families
3122 // names are Postscript names of each face
3123 pref("font.single-face-list", "Osaka-Mono");
3124 
3125 // optimization hint for fonts with localized names to be read in at startup, otherwise read in at lookup miss
3126 // names are canonical family names (typically English names)
3127 pref("font.preload-names-list", "Hiragino Kaku Gothic ProN,Hiragino Mincho ProN,STSong");
3128 
3129 // Override font-weight values for some problematic families Apple ships
3130 // (see bug 931426).
3131 // The name here is the font's PostScript name, which can be checked in
3132 // the Font Book utility or other tools.
3133 pref("font.weight-override.AppleSDGothicNeo-Thin", 100); // Ensure Thin < UltraLight < Light
3134 pref("font.weight-override.AppleSDGothicNeo-UltraLight", 200);
3135 pref("font.weight-override.AppleSDGothicNeo-Light", 300);
3136 pref("font.weight-override.AppleSDGothicNeo-Heavy", 900); // Ensure Heavy > ExtraBold (800)
3137 
3138 pref("font.weight-override.Avenir-Book", 300); // Ensure Book < Roman (400)
3139 pref("font.weight-override.Avenir-BookOblique", 300);
3140 pref("font.weight-override.Avenir-MediumOblique", 500); // Harmonize MediumOblique with Medium
3141 pref("font.weight-override.Avenir-Black", 900); // Ensure Black > Heavy (800)
3142 pref("font.weight-override.Avenir-BlackOblique", 900);
3143 
3144 pref("font.weight-override.AvenirNext-MediumItalic", 500); // Harmonize MediumItalic with Medium
3145 pref("font.weight-override.AvenirNextCondensed-MediumItalic", 500);
3146 
3147 pref("font.weight-override.HelveticaNeue-Light", 300); // Ensure Light > Thin (200)
3148 pref("font.weight-override.HelveticaNeue-LightItalic", 300);
3149 pref("font.weight-override.HelveticaNeue-MediumItalic", 500); // Harmonize MediumItalic with Medium
3150 
3151 // Override the Windows settings: no menu key, meta accelerator key. ctrl for general access key in HTML/XUL
3152 // Use 17 for Ctrl, 18 for Option, 224 for Cmd, 0 for none
3153 pref("ui.key.menuAccessKey", 0);
3154 pref("ui.key.accelKey", 224);
3155 // (pinkerton, joki, saari) IE5 for mac uses Control for access keys. The HTML4 spec
3156 // suggests to use command on mac, but this really sucks (imagine someone having a "q"
3157 // as an access key and not letting you quit the app!). As a result, we've made a
3158 // command decision 1 day before tree lockdown to change it to the control key.
3159 pref("ui.key.generalAccessKey", -1);
3160 
3161 // If generalAccessKey is -1, use the following two prefs instead.
3162 // Use 0 for disabled, 1 for Shift, 2 for Ctrl, 4 for Alt, 8 for Meta (Cmd)
3163 // (values can be combined, e.g. 3 for Ctrl+Shift)
3164 pref("ui.key.chromeAccess", 2);
3165 pref("ui.key.contentAccess", 6);
3166 
3167 // print_extra_margin enables platforms to specify an extra gap or margin
3168 // around the content of the page for Print Preview only
3169 pref("print.print_extra_margin", 90); // twips (90 twips is an eigth of an inch)
3170 
3171 // See bug 404131, topmost <panel> element wins to Dashboard on MacOSX.
3172 pref("ui.panel.default_level_parent", false);
3173 
3174 pref("ui.plugin.cancel_composition_at_input_source_changed", false);
3175 
3176 // The min width of composition window for plugins
3177 pref("ui.plugin.panel.min-width", 500);
3178 
3179 pref("mousewheel.system_scroll_override_on_root_content.enabled", false);
3180 
3181 // Macbook touchpad two finger pixel scrolling
3182 pref("mousewheel.enable_pixel_scrolling", true);
3183 
3184 # XP_MACOSX
3185 #endif
3186 
3187 #ifdef ANDROID
3188 // Handled differently under Mac/Windows
3189 pref("network.protocol-handler.warn-external.file", false);
3190 pref("browser.drag_out_of_frame_style", 1);
3191 
3192 // Middle-mouse handling
3193 pref("middlemouse.paste", true);
3194 pref("middlemouse.contentLoadURL", true);
3195 pref("middlemouse.openNewWindow", true);
3196 pref("middlemouse.scrollbarPosition", true);
3197 
3198 pref("browser.urlbar.clickSelectsAll", false);
3199 
3200 // Tab focus model bit field:
3201 // 1 focuses text controls, 2 focuses other form elements, 4 adds links.
3202 // Leave this at the default, 7, to match mozilla1.0-era user expectations.
3203 // pref("accessibility.tabfocus", 1);
3204 
3205 // autocomplete keyboard grab workaround
3206 pref("autocomplete.grab_during_popup", true);
3207 pref("autocomplete.ungrab_during_mode_switch", true);
3208 
3209 // Default to using the system filepicker if possible, but allow
3210 // toggling to use the XUL filepicker
3211 pref("ui.allow_platform_file_picker", true);
3212 
3213 pref("helpers.global_mime_types_file", "/etc/mime.types");
3214 pref("helpers.global_mailcap_file", "/etc/mailcap");
3215 pref("helpers.private_mime_types_file", "~/.mime.types");
3216 pref("helpers.private_mailcap_file", "~/.mailcap");
3217 pref("print.print_command", "lpr ${MOZ_PRINTER_NAME:+-P\"$MOZ_PRINTER_NAME\"}");
3218 pref("print.printer_list", ""); // list of printers, separated by spaces
3219 pref("print.print_reversed", false);
3220 pref("print.print_color", true);
3221 pref("print.print_landscape", false);
3222 pref("print.print_paper_size", 0);
3223 
3224 // print_extra_margin enables platforms to specify an extra gap or margin
3225 // around the content of the page for Print Preview only
3226 pref("print.print_extra_margin", 0); // twips
3227 
3228 # ANDROID
3229 #endif
3230 
3231 #if defined(ANDROID) || defined(FXOS_SIMULATOR)
3232 // font names
3233 
3234 pref("font.alias-list", "sans,sans-serif,serif,monospace");
3235 
3236 // Gonk (along with FxOS Simulator) and Android ship different sets of fonts
3237 #if defined(MOZ_WIDGET_GONK) || defined(FXOS_SIMULATOR)
3238 
3239 // TODO: some entries could probably be cleaned up.
3240 
3241 // ar
3242 
3243 pref("font.name.serif.el", "Droid Serif"); // not Charis SIL Compact, only has a few Greek chars
3244 pref("font.name.sans-serif.el", "Roboto"); // To be updated once the Greek letters in Fira are revised
3245 pref("font.name.monospace.el", "Droid Sans Mono");
3246 
3247 pref("font.name.serif.he", "Charis SIL Compact");
3248 pref("font.name.sans-serif.he", "Fira Sans");
3249 pref("font.name.monospace.he", "Fira Mono");
3250 pref("font.name-list.sans-serif.he", "Droid Sans Hebrew, Fira Sans");
3251 
3252 pref("font.name.serif.ja", "Charis SIL Compact");
3253 pref("font.name.sans-serif.ja", "Fira Sans");
3254 pref("font.name.monospace.ja", "MotoyaLMaru");
3255 pref("font.name-list.sans-serif.ja", "Fira Sans, MotoyaLMaru, MotoyaLCedar, Droid Sans Japanese");
3256 pref("font.name-list.monospace.ja", "MotoyaLMaru, MotoyaLCedar, Fira Mono");
3257 
3258 pref("font.name.serif.ko", "Charis SIL Compact");
3259 pref("font.name.sans-serif.ko", "Fira Sans");
3260 pref("font.name.monospace.ko", "Fira Mono");
3261 
3262 pref("font.name.serif.th", "Charis SIL Compact");
3263 pref("font.name.sans-serif.th", "Fira Sans");
3264 pref("font.name.monospace.th", "Fira Mono");
3265 pref("font.name-list.sans-serif.th", "Fira Sans, Noto Sans Thai, Droid Sans Thai");
3266 
3267 pref("font.name.serif.tr", "Charis SIL Compact");
3268 pref("font.name.sans-serif.tr", "Fira Sans");
3269 pref("font.name.monospace.tr", "Fira Mono");
3270 
3271 pref("font.name.serif.x-baltic", "Charis SIL Compact");
3272 pref("font.name.sans-serif.x-baltic", "Fira Sans");
3273 pref("font.name.monospace.x-baltic", "Fira Mono");
3274 
3275 pref("font.name.serif.x-central-euro", "Charis SIL Compact");
3276 pref("font.name.sans-serif.x-central-euro", "Fira Sans");
3277 pref("font.name.monospace.x-central-euro", "Fira Mono");
3278 
3279 pref("font.name.serif.x-cyrillic", "Charis SIL Compact");
3280 pref("font.name.sans-serif.x-cyrillic", "Fira Sans");
3281 pref("font.name.monospace.x-cyrillic", "Fira Mono");
3282 
3283 pref("font.name.serif.x-unicode", "Charis SIL Compact");
3284 pref("font.name.sans-serif.x-unicode", "Fira Sans");
3285 pref("font.name.monospace.x-unicode", "Fira Mono");
3286 
3287 pref("font.name.serif.x-western", "Charis SIL Compact");
3288 pref("font.name.sans-serif.x-western", "Fira Sans");
3289 pref("font.name.monospace.x-western", "Fira Mono");
3290 
3291 pref("font.name.serif.zh-CN", "Charis SIL Compact");
3292 pref("font.name.sans-serif.zh-CN", "Fira Sans");
3293 pref("font.name.monospace.zh-CN", "Fira Mono");
3294 
3295 pref("font.name.serif.zh-HK", "Charis SIL Compact");
3296 pref("font.name.sans-serif.zh-HK", "Fira Sans");
3297 pref("font.name.monospace.zh-HK", "Fira Mono");
3298 
3299 pref("font.name.serif.zh-TW", "Charis SIL Compact");
3300 pref("font.name.sans-serif.zh-TW", "Fira Sans");
3301 pref("font.name.monospace.zh-TW", "Fira Mono");
3302 
3303 #else
3304 
3305 // not MOZ_WIDGET_GONK / FXOS_SIMULATOR
3306 // (i.e. this is Firefox for Android) - here, we use the bundled fonts
3307 
3308 // ar
3309 
3310 pref("font.name.serif.el", "Droid Serif"); // not Charis SIL Compact, only has a few Greek chars
3311 pref("font.name.sans-serif.el", "Clear Sans");
3312 pref("font.name.monospace.el", "Droid Sans Mono");
3313 pref("font.name-list.sans-serif.el", "Clear Sans, Roboto, Droid Sans");
3314 
3315 pref("font.name.serif.he", "Droid Serif");
3316 pref("font.name.sans-serif.he", "Clear Sans");
3317 pref("font.name.monospace.he", "Droid Sans Mono");
3318 pref("font.name-list.sans-serif.he", "Droid Sans Hebrew, Clear Sans, Droid Sans");
3319 
3320 pref("font.name.serif.ja", "Charis SIL Compact");
3321 pref("font.name.sans-serif.ja", "Clear Sans");
3322 pref("font.name.monospace.ja", "MotoyaLMaru");
3323 pref("font.name-list.serif.ja", "Droid Serif");
3324 pref("font.name-list.sans-serif.ja", "Clear Sans, Roboto, Droid Sans, MotoyaLMaru, MotoyaLCedar, Droid Sans Japanese");
3325 pref("font.name-list.monospace.ja", "MotoyaLMaru, MotoyaLCedar, Droid Sans Mono");
3326 
3327 pref("font.name.serif.ko", "Charis SIL Compact");
3328 pref("font.name.sans-serif.ko", "Clear Sans");
3329 pref("font.name.monospace.ko", "Droid Sans Mono");
3330 pref("font.name-list.serif.ko", "Droid Serif, HYSerif");
3331 pref("font.name-list.sans-serif.ko", "SmartGothic, NanumGothic, DroidSansFallback, Droid Sans Fallback");
3332 
3333 pref("font.name.serif.th", "Charis SIL Compact");
3334 pref("font.name.sans-serif.th", "Clear Sans");
3335 pref("font.name.monospace.th", "Droid Sans Mono");
3336 pref("font.name-list.serif.th", "Droid Serif");
3337 pref("font.name-list.sans-serif.th", "Droid Sans Thai, Clear Sans, Droid Sans");
3338 
3339 pref("font.name.serif.tr", "Charis SIL Compact");
3340 pref("font.name.sans-serif.tr", "Clear Sans");
3341 pref("font.name.monospace.tr", "Droid Sans Mono");
3342 pref("font.name-list.serif.tr", "Droid Serif");
3343 pref("font.name-list.sans-serif.tr", "Clear Sans, Roboto, Droid Sans");
3344 
3345 pref("font.name.serif.x-baltic", "Charis SIL Compact");
3346 pref("font.name.sans-serif.x-baltic", "Clear Sans");
3347 pref("font.name.monospace.x-baltic", "Droid Sans Mono");
3348 pref("font.name-list.serif.x-baltic", "Droid Serif");
3349 pref("font.name-list.sans-serif.x-baltic", "Clear Sans, Roboto, Droid Sans");
3350 
3351 pref("font.name.serif.x-central-euro", "Charis SIL Compact");
3352 pref("font.name.sans-serif.x-central-euro", "Clear Sans");
3353 pref("font.name.monospace.x-central-euro", "Droid Sans Mono");
3354 pref("font.name-list.serif.x-central-euro", "Droid Serif");
3355 pref("font.name-list.sans-serif.x-central-euro", "Clear Sans, Roboto, Droid Sans");
3356 
3357 pref("font.name.serif.x-cyrillic", "Charis SIL Compact");
3358 pref("font.name.sans-serif.x-cyrillic", "Clear Sans");
3359 pref("font.name.monospace.x-cyrillic", "Droid Sans Mono");
3360 pref("font.name-list.serif.x-cyrillic", "Droid Serif");
3361 pref("font.name-list.sans-serif.x-cyrillic", "Clear Sans, Roboto, Droid Sans");
3362 
3363 pref("font.name.serif.x-unicode", "Charis SIL Compact");
3364 pref("font.name.sans-serif.x-unicode", "Clear Sans");
3365 pref("font.name.monospace.x-unicode", "Droid Sans Mono");
3366 pref("font.name-list.serif.x-unicode", "Droid Serif");
3367 pref("font.name-list.sans-serif.x-unicode", "Clear Sans, Roboto, Droid Sans");
3368 
3369 pref("font.name.serif.x-western", "Charis SIL Compact");
3370 pref("font.name.sans-serif.x-western", "Clear Sans");
3371 pref("font.name.monospace.x-western", "Droid Sans Mono");
3372 pref("font.name-list.serif.x-western", "Droid Serif");
3373 pref("font.name-list.sans-serif.x-western", "Clear Sans, Roboto, Droid Sans");
3374 
3375 pref("font.name.serif.zh-CN", "Charis SIL Compact");
3376 pref("font.name.sans-serif.zh-CN", "Clear Sans");
3377 pref("font.name.monospace.zh-CN", "Droid Sans Mono");
3378 pref("font.name-list.serif.zh-CN", "Droid Serif, Droid Sans Fallback");
3379 pref("font.name-list.sans-serif.zh-CN", "Roboto, Droid Sans, Droid Sans Fallback");
3380 pref("font.name-list.monospace.zh-CN", "Droid Sans Fallback");
3381 
3382 pref("font.name.serif.zh-HK", "Charis SIL Compact");
3383 pref("font.name.sans-serif.zh-HK", "Clear Sans");
3384 pref("font.name.monospace.zh-HK", "Droid Sans Mono");
3385 pref("font.name-list.serif.zh-HK", "Droid Serif, Droid Sans Fallback");
3386 pref("font.name-list.sans-serif.zh-HK", "Roboto, Droid Sans, Droid Sans Fallback");
3387 pref("font.name-list.monospace.zh-HK", "Droid Sans Fallback");
3388 
3389 pref("font.name.serif.zh-TW", "Charis SIL Compact");
3390 pref("font.name.sans-serif.zh-TW", "Clear Sans");
3391 pref("font.name.monospace.zh-TW", "Droid Sans Mono");
3392 pref("font.name-list.serif.zh-TW", "Droid Serif, Droid Sans Fallback");
3393 pref("font.name-list.sans-serif.zh-TW", "Roboto, Droid Sans, Droid Sans Fallback");
3394 pref("font.name-list.monospace.zh-TW", "Droid Sans Fallback");
3395 
3396 // end ! (MOZ_WIDGET_GONK || FXOS_SIMULATOR)
3397 
3398 #endif
3399 
3400 pref("font.size.fixed.ar", 12);
3401 
3402 pref("font.default.el", "sans-serif");
3403 pref("font.size.fixed.el", 12);
3404 
3405 pref("font.size.fixed.he", 12);
3406 
3407 pref("font.minimum-size.th", 13);
3408 
3409 pref("font.default.tr", "sans-serif");
3410 pref("font.size.fixed.tr", 12);
3411 
3412 pref("font.default.x-baltic", "sans-serif");
3413 pref("font.size.fixed.x-baltic", 12);
3414 
3415 pref("font.default.x-central-euro", "sans-serif");
3416 pref("font.size.fixed.x-central-euro", 12);
3417 
3418 pref("font.default.x-cyrillic", "sans-serif");
3419 pref("font.size.fixed.x-cyrillic", 12);
3420 
3421 pref("font.default.x-unicode", "sans-serif");
3422 pref("font.size.fixed.x-unicode", 12);
3423 
3424 pref("font.default.x-western", "sans-serif");
3425 pref("font.size.fixed.x-western", 12);
3426 
3427 # ANDROID || FXOS_SIMUALTOR
3428 #endif
3429 
3430 #ifdef ANDROID
3431 /* PostScript print module prefs */
3432 // pref("print.postscript.enabled",      true);
3433 pref("print.postscript.paper_size",    "letter");
3434 pref("print.postscript.orientation",   "portrait");
3435 pref("print.postscript.print_command", "lpr ${MOZ_PRINTER_NAME:+-P\"$MOZ_PRINTER_NAME\"}");
3436 
3437 // Setting default_level_parent to true makes the default level for popup
3438 // windows "top" instead of "parent".  On GTK2 platform, this is implemented
3439 // with override-redirect windows which is the normal way to implement
3440 // temporary popup windows.  Setting this to false would make the default
3441 // level "parent" which is implemented with managed windows.
3442 // A problem with using managed windows is that metacity sometimes deactivates
3443 // the parent window when the managed popup is shown.
3444 pref("ui.panel.default_level_parent", true);
3445 
3446 pref("mousewheel.system_scroll_override_on_root_content.enabled", false);
3447 
3448 # ANDROID
3449 #endif
3450 
3451 #ifndef ANDROID
3452 #ifndef XP_MACOSX
3453 #ifdef XP_UNIX
3454 // Handled differently under Mac/Windows
3455 pref("network.protocol-handler.warn-external.file", false);
3456 pref("browser.drag_out_of_frame_style", 1);
3457 
3458 // Middle-mouse handling
3459 pref("middlemouse.paste", true);
3460 pref("middlemouse.contentLoadURL", true);
3461 pref("middlemouse.openNewWindow", true);
3462 pref("middlemouse.scrollbarPosition", true);
3463 
3464 // Clipboard behavior
3465 pref("clipboard.autocopy", true);
3466 
3467 pref("browser.urlbar.clickSelectsAll", false);
3468 
3469 // Tab focus model bit field:
3470 // 1 focuses text controls, 2 focuses other form elements, 4 adds links.
3471 // Leave this at the default, 7, to match mozilla1.0-era user expectations.
3472 // pref("accessibility.tabfocus", 1);
3473 
3474 // autocomplete keyboard grab workaround
3475 pref("autocomplete.grab_during_popup", true);
3476 pref("autocomplete.ungrab_during_mode_switch", true);
3477 
3478 // Default to using the system filepicker if possible, but allow
3479 // toggling to use the XUL filepicker
3480 pref("ui.allow_platform_file_picker", true);
3481 
3482 pref("helpers.global_mime_types_file", "/etc/mime.types");
3483 pref("helpers.global_mailcap_file", "/etc/mailcap");
3484 pref("helpers.private_mime_types_file", "~/.mime.types");
3485 pref("helpers.private_mailcap_file", "~/.mailcap");
3486 pref("print.print_command", "lpr ${MOZ_PRINTER_NAME:+-P\"$MOZ_PRINTER_NAME\"}");
3487 pref("print.printer_list", ""); // list of printers, separated by spaces
3488 pref("print.print_reversed", false);
3489 pref("print.print_color", true);
3490 pref("print.print_landscape", false);
3491 pref("print.print_paper_size", 0);
3492 
3493 // print_extra_margin enables platforms to specify an extra gap or margin
3494 // around the content of the page for Print Preview only
3495 pref("print.print_extra_margin", 0); // twips
3496 
3497 // font names
3498 
3499 pref("font.alias-list", "sans,sans-serif,serif,monospace");
3500 
3501 pref("font.size.fixed.ar", 12);
3502 
3503 pref("font.name.serif.el", "serif");
3504 pref("font.name.sans-serif.el", "sans-serif");
3505 pref("font.name.monospace.el", "monospace");
3506 pref("font.size.fixed.el", 12);
3507 
3508 pref("font.name.serif.he", "serif");
3509 pref("font.name.sans-serif.he", "sans-serif");
3510 pref("font.name.monospace.he", "monospace");
3511 pref("font.size.fixed.he", 12);
3512 
3513 pref("font.name.serif.ja", "serif");
3514 pref("font.name.sans-serif.ja", "sans-serif");
3515 pref("font.name.monospace.ja", "monospace");
3516 
3517 pref("font.name.serif.ko", "serif");
3518 pref("font.name.sans-serif.ko", "sans-serif");
3519 pref("font.name.monospace.ko", "monospace");
3520 
3521 pref("font.name.serif.th", "serif");
3522 pref("font.name.sans-serif.th", "sans-serif");
3523 pref("font.minimum-size.th", 13);
3524 pref("font.name.monospace.th", "monospace");
3525 
3526 pref("font.name.serif.tr", "serif");
3527 pref("font.name.sans-serif.tr", "sans-serif");
3528 pref("font.name.monospace.tr", "monospace");
3529 pref("font.size.fixed.tr", 12);
3530 
3531 pref("font.name.serif.x-baltic", "serif");
3532 pref("font.name.sans-serif.x-baltic", "sans-serif");
3533 pref("font.name.monospace.x-baltic", "monospace");
3534 pref("font.size.fixed.x-baltic", 12);
3535 
3536 pref("font.name.serif.x-central-euro", "serif");
3537 pref("font.name.sans-serif.x-central-euro", "sans-serif");
3538 pref("font.name.monospace.x-central-euro", "monospace");
3539 pref("font.size.fixed.x-central-euro", 12);
3540 
3541 pref("font.name.serif.x-cyrillic", "serif");
3542 pref("font.name.sans-serif.x-cyrillic", "sans-serif");
3543 pref("font.name.monospace.x-cyrillic", "monospace");
3544 pref("font.size.fixed.x-cyrillic", 12);
3545 
3546 pref("font.name.serif.x-unicode", "serif");
3547 pref("font.name.sans-serif.x-unicode", "sans-serif");
3548 pref("font.name.monospace.x-unicode", "monospace");
3549 pref("font.size.fixed.x-unicode", 12);
3550 
3551 pref("font.name.serif.x-western", "serif");
3552 pref("font.name.sans-serif.x-western", "sans-serif");
3553 pref("font.name.monospace.x-western", "monospace");
3554 pref("font.size.fixed.x-western", 12);
3555 
3556 pref("font.name.serif.zh-CN", "serif");
3557 pref("font.name.sans-serif.zh-CN", "sans-serif");
3558 pref("font.name.monospace.zh-CN", "monospace");
3559 
3560 // ming_uni.ttf (HKSCS-2001)
3561 // http://www.info.gov.hk/digital21/eng/hkscs/download/uime.exe
3562 pref("font.name.serif.zh-HK", "serif");
3563 pref("font.name.sans-serif.zh-HK", "sans-serif");
3564 pref("font.name.monospace.zh-HK", "monospace");
3565 
3566 // zh-TW
3567 
3568 /* PostScript print module prefs */
3569 // pref("print.postscript.enabled",      true);
3570 pref("print.postscript.paper_size",    "letter");
3571 pref("print.postscript.orientation",   "portrait");
3572 pref("print.postscript.print_command", "lpr ${MOZ_PRINTER_NAME:+-P\"$MOZ_PRINTER_NAME\"}");
3573 
3574 // On GTK2 platform, we should use topmost window level for the default window
3575 // level of <panel> element of XUL. GTK2 has only two window types. One is
3576 // normal top level window, other is popup window. The popup window is always
3577 // topmost window level, therefore, we are using normal top level window for
3578 // non-topmost panel, but it is pretty hacky. On some Window Managers, we have
3579 // 2 problems:
3580 // 1. The non-topmost panel steals focus from its parent window at showing.
3581 // 2. The parent of non-topmost panel is not activated when the panel is hidden.
3582 // So, we have no reasons we should use non-toplevel window for popup.
3583 pref("ui.panel.default_level_parent", true);
3584 
3585 pref("mousewheel.system_scroll_override_on_root_content.enabled", false);
3586 
3587 #if MOZ_WIDGET_GTK == 2
3588 pref("intl.ime.use_simple_context_on_password_field", true);
3589 #else
3590 pref("intl.ime.use_simple_context_on_password_field", false);
3591 #endif
3592 
3593 # XP_UNIX
3594 #endif
3595 #endif
3596 #endif
3597 
3598 #if OS_ARCH==AIX
3599 
3600 // Override default Japanese fonts
3601 pref("font.name.serif.ja", "dt-interface system-jisx0208.1983-0");
3602 pref("font.name.sans-serif.ja", "dt-interface system-jisx0208.1983-0");
3603 pref("font.name.monospace.ja", "dt-interface user-jisx0208.1983-0");
3604 
3605 // Override default Cyrillic fonts
3606 pref("font.name.serif.x-cyrillic", "dt-interface system-iso8859-5");
3607 pref("font.name.sans-serif.x-cyrillic", "dt-interface system-iso8859-5");
3608 pref("font.name.monospace.x-cyrillic", "dt-interface user-iso8859-5");
3609 
3610 // Override default Unicode fonts
3611 pref("font.name.serif.x-unicode", "dt-interface system-ucs2.cjk_japan-0");
3612 pref("font.name.sans-serif.x-unicode", "dt-interface system-ucs2.cjk_japan-0");
3613 pref("font.name.monospace.x-unicode", "dt-interface user-ucs2.cjk_japan-0");
3614 
3615 # AIX
3616 #endif
3617 
3618 #ifdef SOLARIS
3619 
3620 pref("print.postscript.print_command", "lp -c -s ${MOZ_PRINTER_NAME:+-d\"$MOZ_PRINTER_NAME\"}");
3621 pref("print.print_command", "lp -c -s ${MOZ_PRINTER_NAME:+-d\"$MOZ_PRINTER_NAME\"}");
3622 
3623 # Solaris
3624 #endif
3625 
3626 // Login Manager prefs
3627 pref("signon.rememberSignons",              true);
3628 pref("signon.autofillForms",                true);
3629 pref("signon.autologin.proxy",              false);
3630 pref("signon.storeWhenAutocompleteOff",     true);
3631 pref("signon.debug",                        false);
3632 
3633 // Satchel (Form Manager) prefs
3634 pref("browser.formfill.debug",            false);
3635 pref("browser.formfill.enable",           true);
3636 pref("browser.formfill.expire_days",      180);
3637 pref("browser.formfill.saveHttpsForms",   true);
3638 pref("browser.formfill.agedWeight",       2);
3639 pref("browser.formfill.bucketSize",       1);
3640 pref("browser.formfill.maxTimeGroupings", 25);
3641 pref("browser.formfill.timeGroupingSize", 604800);
3642 pref("browser.formfill.boundaryWeight",   25);
3643 pref("browser.formfill.prefixWeight",     5);
3644 
3645 // Zoom prefs
3646 pref("browser.zoom.full", false);
3647 pref("zoom.minPercent", 30);
3648 pref("zoom.maxPercent", 300);
3649 pref("toolkit.zoomManager.zoomValues", ".3,.5,.67,.8,.9,1,1.1,1.2,1.33,1.5,1.7,2,2.4,3");
3650 
3651 /**
3652  * Specify whether or not the browser should generate a reflow event on zoom.
3653  * For a pan-and-zoom ui on mobile, it is sometimes desirable for a zoom event
3654  * to limit the max line box width of text in order to enable easier reading
3655  * of large amounts of text.
3656  *
3657  * If enabled, this will limit the max line box width of all text on a page to
3658  * the viewport width (also generating a reflow), after a zoom event occurs.
3659  *
3660  * By default, this is not enabled.
3661  */
3662 pref("browser.zoom.reflowOnZoom", false);
3663 
3664 /**
3665  * Specifies the number of milliseconds to wait after a given reflow-on-zoom
3666  * operation has completed before allowing another one to be triggered. This
3667  * is to prevent a buildup of reflow-zoom events.
3668  */
3669 pref("browser.zoom.reflowZoom.reflowTimeout", 500);
3670 
3671 /**
3672  * Controls whether or not the reflow-on-zoom behavior happens on page load.
3673  * This can be enabled in conjunction with the above preference (reflowOnZoom),
3674  * but has no effect if browser.zoom.reflowOnZoom is disabled.
3675  *
3676  * Note that this should be turned off only in cases where debugging of the
3677  * reflow-on-zoom feature is necessary, and enabling the feature during
3678  * a page load inhbits this debugging.
3679  */
3680 pref("browser.zoom.reflowZoom.reflowTextOnPageLoad", true);
3681 
3682 // Image-related prefs
3683 // The maximum size, in bytes, of the decoded images we cache
3684 pref("image.cache.size", 5242880);
3685 // A weight, from 0-1000, to place on time when comparing to size.
3686 // Size is given a weight of 1000 - timeweight.
3687 pref("image.cache.timeweight", 500);
3688 
3689 // The default Accept header sent for images loaded over HTTP(S)
3690 pref("image.http.accept", "image/png,image/*;q=0.8,*/*;q=0.5");
3691 
3692 // Whether we do high-quality image downscaling. OS X natively supports
3693 // high-quality image scaling.
3694 #ifdef XP_MACOSX
3695 pref("image.high_quality_downscaling.enabled", false);
3696 #else
3697 pref("image.high_quality_downscaling.enabled", true);
3698 #endif
3699 
3700 // The minimum percent downscaling we'll use high-quality downscaling on,
3701 // interpreted as a floating-point number / 1000.
3702 pref("image.high_quality_downscaling.min_factor", 1000);
3703 
3704 // The maximum memory size which we'll use high-quality uspcaling on,
3705 // interpreted as number of decoded bytes.
3706 pref("image.high_quality_upscaling.max_size", 20971520);
3707 
3708 //
3709 // Image memory management prefs
3710 //
3711 
3712 // Discards inactive image frames and re-decodes them on demand from
3713 // compressed data.
3714 pref("image.mem.discardable", true);
3715 
3716 // Prevents images from automatically being decoded on load, instead allowing
3717 // them to be decoded on demand when they are drawn.
3718 pref("image.mem.decodeondraw", true);
3719 
3720 // Allows image locking of decoded image data in content processes.
3721 pref("image.mem.allow_locking_in_content_processes", true);
3722 
3723 // Minimum timeout for image discarding (in milliseconds). The actual time in
3724 // which an image must inactive for it to be discarded will vary between this
3725 // value and twice this value.
3726 //
3727 // This used to be 120 seconds, but having it that high causes our working
3728 // set to grow very large. Switching it back to 10 seconds will hopefully
3729 // be better.
3730 pref("image.mem.min_discard_timeout_ms", 10000);
3731 
3732 // Chunk size for calls to the image decoders
3733 pref("image.mem.decode_bytes_at_a_time", 16384);
3734 
3735 // The longest time we can spend in an iteration of an async decode
3736 pref("image.mem.max_ms_before_yield", 5);
3737 
3738 // The maximum amount of decoded image data we'll willingly keep around (we
3739 // might keep around more than this, but we'll try to get down to this value).
3740 pref("image.mem.max_decoded_image_kb", 51200);
3741 
3742 // Hard limit for the amount of decoded image data, 0 means we don't have the
3743 // hard limit for it.
3744 pref("image.mem.hard_limit_decoded_image_kb", 0);
3745 
3746 // Minimum timeout for expiring unused images from the surface cache, in
3747 // milliseconds. This controls how long we store cached temporary surfaces.
3748 pref("image.mem.surfacecache.min_expiration_ms", 60000); // 60ms
3749 
3750 // Maximum size for the surface cache, in kilobytes.
3751 pref("image.mem.surfacecache.max_size_kb", 102400); // 100MB
3752 
3753 // The surface cache's size, within the constraints of the maximum size set
3754 // above, is determined using a formula based on system capabilities like memory
3755 // size. The size factor is used to tune this formula. Larger size factors
3756 // result in smaller caches. The default should be a good balance for most
3757 // systems.
3758 pref("image.mem.surfacecache.size_factor", 64);
3759 
3760 // Whether we decode images on multiple background threads rather than the
3761 // foreground thread.
3762 pref("image.multithreaded_decoding.enabled", true);
3763 
3764 // How many threads we'll use for multithreaded decoding. If < 0, will be
3765 // automatically determined based on the system's number of cores.
3766 pref("image.multithreaded_decoding.limit", -1);
3767 
3768 // Limit for the canvas image cache. 0 means we don't limit the size of the
3769 // cache.
3770 pref("canvas.image.cache.limit", 0);
3771 
3772 // How many images to eagerly decode on a given page. 0 means "no limit".
3773 pref("image.onload.decode.limit", 0);
3774 
3775 // WebGL prefs
3776 #ifdef ANDROID
3777 // Disable MSAA on mobile.
3778 pref("gl.msaa-level", 0);
3779 #else
3780 pref("gl.msaa-level", 2);
3781 #endif
3782 pref("webgl.force-enabled", false);
3783 pref("webgl.disabled", false);
3784 pref("webgl.shader_validator", true);
3785 pref("webgl.prefer-native-gl", false);
3786 pref("webgl.min_capability_mode", false);
3787 pref("webgl.disable-extensions", false);
3788 pref("webgl.msaa-force", false);
3789 pref("webgl.prefer-16bpp", false);
3790 pref("webgl.default-no-alpha", false);
3791 pref("webgl.force-layers-readback", false);
3792 pref("webgl.lose-context-on-memory-preasure", false);
3793 pref("webgl.can-lose-context-in-foreground", true);
3794 pref("webgl.restore-context-when-visible", true);
3795 pref("webgl.max-warnings-per-context", 32);
3796 pref("webgl.enable-draft-extensions", false);
3797 pref("webgl.enable-privileged-extensions", false);
3798 #ifdef MOZ_WIDGET_GONK
3799 pref("gfx.gralloc.fence-with-readpixels", false);
3800 #endif
3801 
3802 
3803 // Stagefright prefs
3804 pref("stagefright.force-enabled", false);
3805 pref("stagefright.disabled", false);
3806 
3807 #ifdef XP_WIN
3808 // The default TCP send window on Windows is too small, and autotuning only occurs on receive
3809 pref("network.tcp.sendbuffer", 131072);
3810 #endif
3811 // TCP Keepalive
3812 pref("network.tcp.keepalive.enabled", true);
3813 // Default idle time before first TCP keepalive probe; same time for interval
3814 // between successful probes. Can be overridden in socket transport API.
3815 // Win, Linux and Mac.
3816 pref("network.tcp.keepalive.idle_time", 600); // seconds; 10 mins
3817 // Default timeout for retransmission of unack'd keepalive probes.
3818 // Win and Linux only; not configurable on Mac.
3819 #if defined(XP_UNIX) && !defined(XP_MACOSX) || defined(XP_WIN)
3820 pref("network.tcp.keepalive.retry_interval", 1); // seconds
3821 #endif
3822 // Default maximum probe retransmissions.
3823 // Linux only; not configurable on Win and Mac; fixed at 10 and 8 respectively.
3824 #ifdef XP_UNIX && !defined(XP_MACOSX)
3825 pref("network.tcp.keepalive.probe_count", 4);
3826 #endif
3827 
3828 // Whether to disable acceleration for all widgets.
3829 pref("layers.acceleration.disabled", false);
3830 // Preference that when switched at runtime will run a series of benchmarks
3831 // and output the result to stderr.
3832 pref("layers.bench.enabled", false);
3833 
3834 // Whether to force acceleration on, ignoring blacklists.
3835 #ifdef ANDROID
3836 // bug 838603 -- on Android, accidentally blacklisting OpenGL layers
3837 // means a startup crash for everyone.
3838 pref("layers.acceleration.force-enabled", true);
3839 #else
3840 pref("layers.acceleration.force-enabled", false);
3841 #endif
3842 
3843 pref("layers.acceleration.draw-fps", false);
3844 
3845 pref("layers.dump", false);
3846 pref("layers.draw-borders", false);
3847 pref("layers.draw-tile-borders", false);
3848 pref("layers.draw-bigimage-borders", false);
3849 pref("layers.frame-counter", false);
3850 pref("layers.enable-tiles", false);
3851 pref("layers.low-precision-buffer", false);
3852 pref("layers.tile-width", 256);
3853 pref("layers.tile-height", 256);
3854 // Max number of layers per container. See Overwrite in mobile prefs.
3855 pref("layers.max-active", -1);
3856 // When a layer is moving it will add a scroll graph to measure the smoothness
3857 // of the movement. NOTE: This pref triggers composites to refresh
3858 // the graph.
3859 pref("layers.scroll-graph", false);
3860 
3861 // Set the default values, and then override per-platform as needed
3862 pref("layers.offmainthreadcomposition.enabled", false);
3863 // Compositor target frame rate. NOTE: If vsync is enabled the compositor
3864 // frame rate will still be capped.
3865 // -1 -> default (match layout.frame_rate or 60 FPS)
3866 // 0  -> full-tilt mode: Recomposite even if not transaction occured.
3867 pref("layers.offmainthreadcomposition.frame-rate", -1);
3868 
3869 // Asynchonous video compositing using the ImageBridge IPDL protocol.
3870 // requires off-main-thread compositing.
3871 pref("layers.async-video.enabled", true);
3872 pref("layers.async-video-oop.enabled",true);
3873 
3874 #ifdef XP_WIN
3875 pref("layers.offmainthreadcomposition.enabled", true);
3876 // XXX - see bug 1009616
3877 pref("layers.async-video-oop.enabled", false);
3878 #endif
3879 
3880 #ifdef MOZ_WIDGET_QT
3881 pref("layers.offmainthreadcomposition.enabled", true);
3882 #endif
3883 
3884 #ifdef XP_MACOSX
3885 pref("layers.offmainthreadcomposition.enabled", true);
3886 #endif
3887 
3888 // ANDROID covers android and b2g
3889 #ifdef ANDROID
3890 pref("layers.offmainthreadcomposition.enabled", true);
3891 #endif
3892 
3893 // same effect as layers.offmainthreadcomposition.enabled, but specifically for
3894 // use with tests.
3895 pref("layers.offmainthreadcomposition.testing.enabled", false);
3896 
3897 // whether to allow use of the basic compositor
3898 pref("layers.offmainthreadcomposition.force-basic", false);
3899 
3900 // Whether to animate simple opacity and transforms on the compositor
3901 pref("layers.offmainthreadcomposition.async-animations", false);
3902 
3903 // Whether to log information about off main thread animations to stderr
3904 pref("layers.offmainthreadcomposition.log-animations", false);
3905 
3906 pref("layers.bufferrotation.enabled", true);
3907 
3908 pref("layers.componentalpha.enabled", true);
3909 
3910 #ifdef ANDROID
3911 pref("gfx.apitrace.enabled",false);
3912 #endif
3913 
3914 #ifdef MOZ_X11
3915 #ifdef MOZ_WIDGET_GTK
3916 pref("gfx.xrender.enabled",true);
3917 #endif
3918 #endif
3919 
3920 #ifdef XP_WIN
3921 // Whether to disable the automatic detection and use of direct2d.
3922 pref("gfx.direct2d.disabled", false);
3923 
3924 // Whether to attempt to enable Direct2D regardless of automatic detection or
3925 // blacklisting
3926 pref("gfx.direct2d.force-enabled", false);
3927 
3928 pref("layers.prefer-opengl", false);
3929 pref("layers.prefer-d3d9", false);
3930 #endif
3931 
3932 // Force all possible layers to be always active layers
3933 pref("layers.force-active", false);
3934 
3935 // Enable/Disable the geolocation API for content
3936 pref("geo.enabled", true);
3937 
3938 // Enable/Disable the orientation API for content
3939 pref("device.sensors.enabled", true);
3940 
3941 // Enable/Disable the device storage API for content
3942 pref("device.storage.enabled", false);
3943 
3944 // Toggle which thread the HTML5 parser uses for stream parsing
3945 pref("html5.offmainthread", true);
3946 // Time in milliseconds between the time a network buffer is seen and the
3947 // timer firing when the timer hasn't fired previously in this parse in the
3948 // off-the-main-thread HTML5 parser.
3949 pref("html5.flushtimer.initialdelay", 120);
3950 // Time in milliseconds between the time a network buffer is seen and the
3951 // timer firing when the timer has already fired previously in this parse.
3952 pref("html5.flushtimer.subsequentdelay", 120);
3953 
3954 // Push/Pop/Replace State prefs
3955 pref("browser.history.allowPushState", true);
3956 pref("browser.history.allowReplaceState", true);
3957 pref("browser.history.allowPopState", true);
3958 pref("browser.history.maxStateObjectSize", 655360);
3959 
3960 // XPInstall prefs
3961 pref("xpinstall.whitelist.required", true);
3962 pref("extensions.alwaysUnpack", false);
3963 pref("extensions.minCompatiblePlatformVersion", "2.0");
3964 
3965 pref("network.buffer.cache.count", 24);
3966 pref("network.buffer.cache.size",  32768);
3967 
3968 // Desktop Notification
3969 pref("notification.feature.enabled", false);
3970 
3971 // Web Notification
3972 pref("dom.webnotifications.enabled", true);
3973 
3974 // Alert animation effect, name is disableSlidingEffect for backwards-compat.
3975 pref("alerts.disableSlidingEffect", false);
3976 
3977 // DOM full-screen API.
3978 pref("full-screen-api.enabled", false);
3979 pref("full-screen-api.allow-trusted-requests-only", true);
3980 pref("full-screen-api.content-only", false);
3981 pref("full-screen-api.pointer-lock.enabled", true);
3982 
3983 // DOM idle observers API
3984 pref("dom.idle-observers-api.enabled", true);
3985 
3986 // Time limit, in milliseconds, for EventStateManager::IsHandlingUserInput().
3987 // Used to detect long running handlers of user-generated events.
3988 pref("dom.event.handling-user-input-time-limit", 1000);
3989 
3990 // Whether we should layerize all animated images (if otherwise possible).
3991 pref("layout.animated-image-layers.enabled", false);
3992 
3993 pref("dom.vibrator.enabled", true);
3994 pref("dom.vibrator.max_vibrate_ms", 10000);
3995 pref("dom.vibrator.max_vibrate_list_len", 128);
3996 
3997 // Battery API
3998 pref("dom.battery.enabled", true);
3999 
4000 // Image srcset
4001 pref("dom.image.srcset.enabled", false);
4002 
4003 // <picture> element and sizes
4004 pref("dom.image.picture.enabled", false);
4005 
4006 // WebSMS
4007 pref("dom.sms.enabled", false);
4008 // Enable Latin characters replacement with corresponding ones in GSM SMS
4009 // 7-bit default alphabet.
4010 pref("dom.sms.strict7BitEncoding", false);
4011 pref("dom.sms.requestStatusReport", true);
4012 // Numeric default service id for SMS API calls with |serviceId| parameter
4013 // omitted.
4014 pref("dom.sms.defaultServiceId", 0);
4015 
4016 // WebContacts
4017 pref("dom.mozContacts.enabled", false);
4018 
4019 // WebAlarms
4020 pref("dom.mozAlarms.enabled", false);
4021 
4022 // SimplePush
4023 pref("services.push.enabled", false);
4024 
4025 // WebNetworkStats
4026 pref("dom.mozNetworkStats.enabled", false);
4027 
4028 // WebSettings
4029 pref("dom.mozSettings.enabled", false);
4030 pref("dom.mozPermissionSettings.enabled", false);
4031 
4032 // W3C touch events
4033 // 0 - disabled, 1 - enabled, 2 - autodetect (win)
4034 #ifdef XP_WIN
4035 pref("dom.w3c_touch_events.enabled", 2);
4036 #endif
4037 
4038 // W3C draft pointer events
4039 pref("dom.w3c_pointer_events.enabled", false);
4040 
4041 // W3C touch-action css property (related to touch and pointer events)
4042 pref("layout.css.touch_action.enabled", false);
4043 
4044 // enable JS dump() function.
4045 pref("browser.dom.window.dump.enabled", false);
4046 
4047 // SPS Profiler
4048 pref("profiler.enabled", false);
4049 pref("profiler.interval", 10);
4050 pref("profiler.entries", 100000);
4051 
4052 #if defined(MOZ_WIDGET_GONK) || defined(MOZ_WIDGET_ANDROID)
4053 // Network Information API
4054 pref("dom.netinfo.enabled", true);
4055 #else
4056 pref("dom.netinfo.enabled", false);
4057 #endif
4058 
4059 #ifdef XP_WIN
4060 // On 32-bit Windows, fire a low-memory notification if we have less than this
4061 // many mb of virtual address space available.
4062 pref("memory.low_virtual_memory_threshold_mb", 128);
4063 
4064 // On Windows 32- or 64-bit, fire a low-memory notification if we have less
4065 // than this many mb of commit space (physical memory plus page file) left.
4066 pref("memory.low_commit_space_threshold_mb", 128);
4067 
4068 // On Windows 32- or 64-bit, fire a low-memory notification if we have less
4069 // than this many mb of physical memory available on the whole machine.
4070 pref("memory.low_physical_memory_threshold_mb", 0);
4071 
4072 // On Windows 32- or 64-bit, don't fire a low-memory notification because of
4073 // low available physical memory or low commit space more than once every
4074 // low_memory_notification_interval_ms.
4075 pref("memory.low_memory_notification_interval_ms", 10000);
4076 #endif
4077 
4078 // How long must we wait before declaring that a window is a "ghost" (i.e., a
4079 // likely leak)?  This should be longer than it usually takes for an eligible
4080 // window to be collected via the GC/CC.
4081 pref("memory.ghost_window_timeout_seconds", 60);
4082 
4083 // Disable freeing dirty pages when minimizing memory.
4084 pref("memory.free_dirty_pages", false);
4085 
4086 // Disable the Linux-specific, system-wide memory reporter.
4087 #ifdef XP_LINUX
4088 pref("memory.system_memory_reporter", false);
4089 #endif
4090 
4091 // Don't dump memory reports on OOM, by default.
4092 pref("memory.dump_reports_on_oom", false);
4093 
4094 // Number of stack frames to capture in createObjectURL for about:memory.
4095 pref("memory.blob_report.stack_frames", 0);
4096 
4097 // comma separated list of domain origins (e.g. https://domain.com) that still
4098 // need localStorage in the frameworker
4099 pref("social.whitelist", "https://mozsocial.cliqz.com");
4100 // comma separated list of domain origins (e.g. https://domain.com) for
4101 // directory websites (e.g. AMO) that can install providers for other sites
4102 pref("social.directories", "https://activations.cdn.mozilla.net");
4103 // remote-install allows any website to activate a provider, with extended UI
4104 // notifying user of installation. we can later pref off remote install if
4105 // necessary. This does not affect whitelisted and directory installs.
4106 pref("social.remote-install.enabled", true);
4107 pref("social.toast-notifications.enabled", true);
4108 
4109 // Disable idle observer fuzz, because only privileged content can access idle
4110 // observers (bug 780507).
4111 pref("dom.idle-observers-api.fuzz_time.disabled", true);
4112 
4113 // Lowest localId for apps.
4114 pref("dom.mozApps.maxLocalId", 1000);
4115 
4116 // XXX Security: You CANNOT safely add a new app store for
4117 // installing privileged apps just by modifying this pref and
4118 // adding the signing cert for that store to the cert trust
4119 // database. *Any* origin listed can install apps signed with
4120 // *any* certificate trusted; we don't try to maintain a strong
4121 // association between certificate with installOrign. The
4122 // expectation here is that in production builds the pref will
4123 // contain exactly one origin. However, in custom development
4124 // builds it may contain more than one origin so we can test
4125 // different stages (dev, staging, prod) of the same app store.
4126 pref("dom.mozApps.signed_apps_installable_from", "https://marketplace.firefox.com");
4127 
4128 // Whether or not to dump mozApps debug messages to the console.
4129 // Only checked on startup, so restart after changing this pref.
4130 // Ignored on Android, where we always report debug messages because it's
4131 // unnecessary to restrict reporting, per bug 1003469.
4132 pref("dom.mozApps.debug", false);
4133 
4134 // Minimum delay in milliseconds between network activity notifications (0 means
4135 // no notifications). The delay is the same for both download and upload, though
4136 // they are handled separately. This pref is only read once at startup:
4137 // a restart is required to enable a new value.
4138 pref("network.activity.blipIntervalMilliseconds", 0);
4139 
4140 // If true, reuse the same global for everything loaded by the component loader
4141 // (JS components, JSMs, etc).  This saves memory, but makes it possible for
4142 // the scripts to interfere with each other.  A restart is required for this
4143 // to take effect.
4144 pref("jsloader.reuseGlobal", false);
4145 
4146 // When we're asked to take a screenshot, don't wait more than 2000ms for the
4147 // event loop to become idle before actually taking the screenshot.
4148 pref("dom.browserElement.maxScreenshotDelayMS", 2000);
4149 
4150 // Whether we should show the placeholder when the element is focused but empty.
4151 pref("dom.placeholder.show_on_focus", true);
4152 
4153 // MMS UA Profile settings
4154 pref("wap.UAProf.url", "");
4155 pref("wap.UAProf.tagname", "x-wap-profile");
4156 
4157 // MMS version 1.1 = 0x11 (or decimal 17)
4158 // MMS version 1.3 = 0x13 (or decimal 19)
4159 // @see OMA-TS-MMS_ENC-V1_3-20110913-A clause 7.3.34
4160 pref("dom.mms.version", 19);
4161 
4162 pref("dom.mms.requestStatusReport", true);
4163 
4164 // Retrieval mode for MMS
4165 // manual: Manual retrieval mode.
4166 // automatic: Automatic retrieval mode even in roaming.
4167 // automatic-home: Automatic retrieval mode in home network.
4168 // never: Never retrieval mode.
4169 pref("dom.mms.retrieval_mode", "manual");
4170 
4171 pref("dom.mms.sendRetryCount", 3);
4172 pref("dom.mms.sendRetryInterval", "10000,60000,180000");
4173 
4174 pref("dom.mms.retrievalRetryCount", 4);
4175 pref("dom.mms.retrievalRetryIntervals", "60000,300000,600000,1800000");
4176 // Numeric default service id for MMS API calls with |serviceId| parameter
4177 // omitted.
4178 pref("dom.mms.defaultServiceId", 0);
4179 // Debug enabler for MMS.
4180 pref("mms.debugging.enabled", false);
4181 
4182 // Request read report while sending MMS.
4183 pref("dom.mms.requestReadReport", true);
4184 
4185 // Number of RadioInterface instances to create.
4186 pref("ril.numRadioInterfaces", 0);
4187 
4188 // If the user puts a finger down on an element and we think the user
4189 // might be executing a pan gesture, how long do we wait before
4190 // tentatively deciding the gesture is actually a tap and activating
4191 // the target element?
4192 pref("ui.touch_activation.delay_ms", 100);
4193 
4194 // If the user has clicked an element, how long do we keep the
4195 // :active state before it is cleared by the mouse sequences
4196 // fired after a touchstart/touchend.
4197 pref("ui.touch_activation.duration_ms", 10);
4198 
4199 // nsMemoryInfoDumper can watch a fifo in the temp directory and take various
4200 // actions when the fifo is written to.  Disable this in general.
4201 pref("memory_info_dumper.watch_fifo.enabled", false);
4202 
4203 #ifdef MOZ_CAPTIVEDETECT
4204 pref("captivedetect.maxWaitingTime", 5000);
4205 pref("captivedetect.pollingTime", 3000);
4206 pref("captivedetect.maxRetryCount", 5);
4207 #endif
4208 
4209 #ifdef RELEASE_BUILD
4210 pref("dom.forms.inputmode", false);
4211 #else
4212 pref("dom.forms.inputmode", true);
4213 #endif
4214 
4215 // InputMethods for soft keyboards in B2G
4216 pref("dom.mozInputMethod.enabled", false);
4217 
4218 // DataStore is disabled by default
4219 pref("dom.datastore.enabled", false);
4220 
4221 // Telephony API
4222 #ifdef MOZ_B2G_RIL
4223 pref("dom.telephony.enabled", true);
4224 #else
4225 pref("dom.telephony.enabled", false);
4226 #endif
4227 // Numeric default service id for WebTelephony API calls with |serviceId|
4228 // parameter omitted.
4229 pref("dom.telephony.defaultServiceId", 0);
4230 
4231 // Cell Broadcast API
4232 #ifdef MOZ_B2G_RIL
4233 pref("dom.cellbroadcast.enabled", true);
4234 #else
4235 pref("dom.cellbroadcast.enabled", false);
4236 #endif
4237 
4238 // ICC API
4239 #ifdef MOZ_B2G_RIL
4240 pref("dom.icc.enabled", true);
4241 #else
4242 pref("dom.icc.enabled", false);
4243 #endif
4244 
4245 // Mobile Connection API
4246 #ifdef MOZ_B2G_RIL
4247 pref("dom.mobileconnection.enabled", true);
4248 #else
4249 pref("dom.mobileconnection.enabled", false);
4250 #endif
4251 
4252 // Voice Mail API
4253 #ifdef MOZ_B2G_RIL
4254 pref("dom.voicemail.enabled", true);
4255 #else
4256 pref("dom.voicemail.enabled", false);
4257 #endif
4258 // Numeric default service id for Voice Mail API calls with |serviceId|
4259 // parameter omitted.
4260 pref("dom.voicemail.defaultServiceId", 0);
4261 
4262 // DOM Inter-App Communication API.
4263 pref("dom.inter-app-communication-api.enabled", false);
4264 
4265 // Disable mapped array buffer by default.
4266 pref("dom.mapped_arraybuffer.enabled", false);
4267 
4268 // The tables used for Safebrowsing phishing and malware checks.
4269