/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* The prefs in this file are shipped with the GRE and should apply to all * embedding situations. Application-specific preferences belong somewhere else, * for example xpfe/bootstrap/browser-prefs.js * * Platform-specific #ifdefs at the end of this file override the generic * entries at the top. */ /* * SYNTAX HINTS: * * - Dashes are delimiters; use underscores instead. * - The first character after a period must be alphabetic. * - Computed values (e.g. 50 * 1024) don't work. */ pref("preferences.allow.omt-write", true); pref("keyword.enabled", false); pref("general.useragent.locale", "chrome://global/locale/intl.properties"); pref("general.useragent.compatMode.firefox", false); // This pref exists only for testing purposes. In order to disable all // overrides by default, don't initialize UserAgentOverrides.jsm. pref("general.useragent.site_specific_overrides", true); pref("general.config.obscure_value", 13); // for MCD .cfg files pref("general.warnOnAboutConfig", true); // maximum number of dated backups to keep at any time pref("browser.bookmarks.max_backups", 5); pref("browser.cache.disk.enable", true); // Is this the first-time smartsizing has been introduced? pref("browser.cache.disk.smart_size.first_run", true); // Does the user want smart-sizing? pref("browser.cache.disk.smart_size.enabled", true); // Which max value should we use for smart-sizing? pref("browser.cache.disk.smart_size.use_old_max", true); // Size (in KB) explicitly set by the user. Used when smart_size.enabled == false pref("browser.cache.disk.capacity", 256000); // When smartsizing is disabled we could potentially fill all disk space by // cache data when the disk capacity is not set correctly. To avoid that we // check the free space every time we write some data to the cache. The free // space is checked against two limits. Once the soft limit is reached we start // evicting the least useful entries, when we reach the hard limit writing to // the entry fails. pref("browser.cache.disk.free_space_soft_limit", 5120); // 5MB pref("browser.cache.disk.free_space_hard_limit", 1024); // 1MB // Max-size (in KB) for entries in disk cache. Set to -1 for no limit. // (Note: entries bigger than 1/8 of disk-cache are never cached) pref("browser.cache.disk.max_entry_size", 51200); // 50 MB pref("browser.cache.memory.enable", true); // -1 = determine dynamically, 0 = none, n = memory capacity in kilobytes //pref("browser.cache.memory.capacity", -1); // Max-size (in KB) for entries in memory cache. Set to -1 for no limit. // (Note: entries bigger than than 90% of the mem-cache are never cached) pref("browser.cache.memory.max_entry_size", 5120); // Memory limit (in kB) for new cache data not yet written to disk. Writes to // the cache are buffered and written to disk on background with low priority. // With a slow persistent storage these buffers may grow when data is coming // fast from the network. When the amount of unwritten data is exceeded, new // writes will simply fail. We have two buckets, one for important data // (priority) like html, css, fonts and js, and one for other data like images, // video, etc. // Note: 0 means no limit. pref("browser.cache.disk.max_chunks_memory_usage", 10240); pref("browser.cache.disk.max_priority_chunks_memory_usage", 10240); pref("browser.cache.disk_cache_ssl", true); // 0 = once-per-session, 1 = each-time, 2 = never, 3 = when-appropriate/automatically pref("browser.cache.check_doc_frequency", 3); // Limit of recent metadata we keep in memory for faster access, in Kb pref("browser.cache.disk.metadata_memory_limit", 250); // 0.25 MB // The number of chunks we preload ahead of read. One chunk has currently 256kB. pref("browser.cache.disk.preload_chunk_count", 4); // 1 MB of read ahead // The half life used to re-compute cache entries frecency in hours. pref("browser.cache.frecency_half_life_hours", 6); // Number of seconds the cache spends writting pending data and closing files // after the shutdown has been signalled. Past that time data are never written // and files are left open given up to the OS to do the cleanup. pref("browser.cache.max_shutdown_io_lag", 2); pref("browser.cache.offline.enable", true); // enable offline apps by default, disable prompt pref("offline-apps.allow_by_default", true); // offline cache capacity in kilobytes pref("browser.cache.offline.capacity", 512000); // the user should be warned if offline app disk usage exceeds this amount // (in kilobytes) pref("offline-apps.quota.warn", 51200); // zlib compression level used for cache compression: // 0 => disable compression // 1 => best speed // 9 => best compression // cache compression turned off for now - see bug #715198 pref("browser.cache.compression_level", 0); // Don't show "Open with" option on download dialog if true. pref("browser.download.forbid_open_with", false); // Whether or not testing features are enabled. pref("dom.quotaManager.testing", false); // Whether or not indexedDB is enabled. pref("dom.indexedDB.enabled", true); // Whether or not indexedDB experimental features are enabled. pref("dom.indexedDB.experimental", false); // Enable indexedDB logging. pref("dom.indexedDB.logging.enabled", true); // Detailed output in log messages. pref("dom.indexedDB.logging.details", true); // Enable profiler marks for indexedDB events. pref("dom.indexedDB.logging.profiler-marks", false); // Whether or not File Handle is enabled. pref("dom.fileHandle.enabled", true); // Whether window.onappinstalled from "W3C Web Manifest" is enabled pref("dom.manifest.onappinstalled", false); // Whether or not selection events are enabled pref("dom.select_events.enabled", true); // Whether or not selection events on text controls are enabled #ifdef NIGHTLY_BUILD pref("dom.select_events.textcontrols.enabled", true); #else pref("dom.select_events.textcontrols.enabled", false); #endif // Whether or not Web Workers are enabled. pref("dom.workers.enabled", true); // The number of workers per domain allowed to run concurrently. // We're going for effectively infinite, while preventing abuse. pref("dom.workers.maxPerDomain", 512); pref("dom.serviceWorkers.enabled", false); // The amount of time (milliseconds) service workers keep running after each event. pref("dom.serviceWorkers.idle_timeout", 30000); // The amount of time (milliseconds) service workers can be kept running using waitUntil promises. pref("dom.serviceWorkers.idle_extended_timeout", 300000); // Enable test for 24 hours update, service workers will always treat last update check time is over 24 hours pref("dom.serviceWorkers.testUpdateOverOneDay", false); // Whether nonzero values can be returned from performance.timing.* pref("dom.enable_performance", true); // Whether resource timing will be gathered and returned by performance.GetEntries* pref("dom.enable_resource_timing", true); // Whether performance.GetEntries* will contain an entry for the active document pref("dom.enable_performance_navigation_timing", true); // Enable printing performance marks/measures to log pref("dom.performance.enable_user_timing_logging", false); // Enable notification of performance timing pref("dom.performance.enable_notify_performance_timing", false); // Enable Permission API's .revoke() method pref("dom.permissions.revoke.enable", false); // Enable exposing timeToNonBlankPaint pref("dom.performance.time_to_non_blank_paint.enabled", false); // Enable Performance Observer API pref("dom.enable_performance_observer", true); // Enable requestIdleCallback API pref("dom.requestIdleCallback.enabled", true); // Whether the Gamepad API is enabled pref("dom.gamepad.enabled", true); pref("dom.gamepad.test.enabled", false); #ifdef RELEASE_OR_BETA pref("dom.gamepad.non_standard_events.enabled", false); #else pref("dom.gamepad.non_standard_events.enabled", true); #endif pref("dom.gamepad.extensions.enabled", true); pref("dom.gamepad.haptic_feedback.enabled", true); // If this is true, TextEventDispatcher dispatches keydown and keyup events // even during composition (keypress events are never fired during composition // even if this is true). pref("dom.keyboardevent.dispatch_during_composition", false); // Whether to run add-on code in different compartments from browser code. This // causes a separate compartment for each (addon, global) combination, which may // significantly increase the number of compartments in the system. pref("dom.compartment_per_addon", true); // Whether to enable the JavaScript start-up cache. This causes one of the first // execution to record the bytecode of the JavaScript function used, and save it // in the existing cache entry. On the following loads of the same script, the // bytecode would be loaded from the cache instead of being generated once more. pref("dom.script_loader.bytecode_cache.enabled", false); // Ignore the heuristics of the bytecode cache, and always record on the first // visit. (used for testing purposes). // Choose one strategy to use to decide when the bytecode should be encoded and // saved. The following strategies are available right now: // * -2 : (reader mode) The bytecode cache would be read, but it would never // be saved. // * -1 : (eager mode) The bytecode would be saved as soon as the script is // seen for the first time, independently of the size or last access // time. // * 0 : (default) The bytecode would be saved in order to minimize the // page-load time. // // Other values might lead to experimental strategies. For more details, have a // look at: ScriptLoader::ShouldCacheBytecode function. pref("dom.script_loader.bytecode_cache.strategy", 0); // Fastback caching - if this pref is negative, then we calculate the number // of content viewers to cache based on the amount of available memory. pref("browser.sessionhistory.max_total_viewers", -1); pref("ui.use_native_colors", true); pref("ui.click_hold_context_menus", false); // Duration of timeout of incremental search in menus (ms). 0 means infinite. pref("ui.menu.incremental_search.timeout", 1000); // If true, all popups won't hide automatically on blur pref("ui.popup.disable_autohide", false); pref("browser.display.use_document_fonts", 1); // 0 = never, 1 = quick, 2 = always // 0 = default: always, except in high contrast mode // 1 = always // 2 = never pref("browser.display.document_color_use", 0); pref("browser.display.use_system_colors", false); pref("browser.display.foreground_color", "#000000"); pref("browser.display.background_color", "#FFFFFF"); pref("browser.display.force_inline_alttext", false); // true = force ALT text for missing images to be layed out inline // 0 = no external leading, // 1 = use external leading only when font provides, // 2 = add extra leading both internal leading and external leading are zero pref("browser.display.normal_lineheight_calc_control", 2); // enable showing image placeholders while image is loading or when image is broken pref("browser.display.show_image_placeholders", true); // if browser.display.show_image_placeholders is true then this controls whether the loading image placeholder and border is shown or not pref("browser.display.show_loading_image_placeholder", false); // min font device pixel size at which to turn on high quality pref("browser.display.auto_quality_min_font_size", 20); pref("browser.anchor_color", "#0000EE"); pref("browser.active_color", "#EE0000"); pref("browser.visited_color", "#551A8B"); pref("browser.underline_anchors", true); pref("browser.enable_automatic_image_resizing", false); pref("browser.enable_click_image_resizing", true); // See http://dev.w3.org/html5/spec/forms.html#attr-fe-autofocus pref("browser.autofocus", true); // See http://whatwg.org/specs/web-apps/current-work/#ping pref("browser.send_pings", false); pref("browser.send_pings.max_per_link", 1); // limit the number of pings that are sent per link click pref("browser.send_pings.require_same_host", false); // only send pings to the same host if this is true pref("browser.display.use_focus_colors", false); pref("browser.display.focus_background_color", "#117722"); pref("browser.display.focus_text_color", "#ffffff"); pref("browser.display.focus_ring_width", 1); pref("browser.display.focus_ring_on_anything", false); // focus ring border style. // 0 = solid border, 1 = dotted border pref("browser.display.focus_ring_style", 1); pref("browser.helperApps.alwaysAsk.force", false); pref("browser.helperApps.neverAsk.saveToDisk", ""); pref("browser.helperApps.neverAsk.openFile", ""); pref("browser.helperApps.deleteTempFileOnExit", false); // xxxbsmedberg: where should prefs for the toolkit go? pref("browser.chrome.toolbar_tips", true); // 0 = Pictures Only, 1 = Text Only, 2 = Pictures and Text pref("browser.chrome.toolbar_style", 2); // max image size for which it is placed in the tab icon for tabbrowser. // if 0, no images are used for tab icons for image documents. pref("browser.chrome.image_icons.max_size", 1024); pref("browser.triple_click_selects_paragraph", true); // Print/Preview Shrink-To-Fit won't shrink below 20% for text-ish documents. pref("print.shrink-to-fit.scale-limit-percent", 20); // Whether we should display simplify page checkbox on print preview UI pref("print.use_simplify_page", false); // Disable support for MathML pref("mathml.disabled", false); // Enable scale transform for stretchy MathML operators. See bug 414277. pref("mathml.scale_stretchy_operators.enabled", true); pref("media.dormant-on-pause-timeout-ms", 5000); // Used by ChannelMediaResource to run data callbacks from HTTP channel // off the main thread. pref("media.omt_data_delivery.enabled", true); // File-backed MediaCache size in kilobytes pref("media.cache_size", 512000); // When a network connection is suspended, don't resume it until the // amount of buffered data falls below this threshold (in seconds). pref("media.cache_resume_threshold", 30); // Stop reading ahead when our buffered data is this many seconds ahead // of the current playback position. This limit can stop us from using arbitrary // amounts of network bandwidth prefetching huge videos. pref("media.cache_readahead_limit", 60); // If a resource is known to be smaller than this size (in kilobytes), a // memory-backed MediaCache may be used; otherwise the (single shared // global) file-backed MediaCache is used. pref("media.memory_cache_max_size", 8192); // Don't create more memory-backed MediaCaches if their combined size would go // above the lowest limit (in kilobytes or in percent of physical memory size). pref("media.memory_caches_combined_limit_kb", 524288); pref("media.memory_caches_combined_limit_pc_sysmem", 5); // Cache size hint (in bytes) for each MediaResourceIndex. // 0 -> no cache. Will use next power of 2, clamped to 32B-128KB. pref("media.cache.resource-index", 8192); // We'll throttle the download if the download rate is throttle-factor times // the estimated playback rate, AND we satisfy the cache readahead_limit // above. The estimated playback rate is time_duration/length_in_bytes. // This means we'll only throttle the download if there's no concern that // throttling would cause us to stop and buffer. pref("media.throttle-factor", 2); // By default, we'll throttle media download once we've reached the the // readahead_limit if the download is fast. This pref toggles the "and the // download is fast" check off, so that we can always throttle the download // once the readaheadd limit is reached even on a slow network. pref("media.throttle-regardless-of-download-rate", false); // Master HTML5 media volume scale. pref("media.volume_scale", "1.0"); // Whether we should play videos opened in a "video document", i.e. videos // opened as top-level documents, as opposed to inside a media element. pref("media.play-stand-alone", true); pref("media.hardware-video-decoding.enabled", true); pref("media.hardware-video-decoding.force-enabled", false); #ifdef MOZ_FMP4 pref("media.mp4.enabled", true); // Specifies whether the PDMFactory can create a test decoder that #endif // just outputs blank frames/audio instead of actually decoding. The blank // decoder works on all platforms. pref("media.use-blank-decoder", false); #ifdef MOZ_WMF pref("media.wmf.enabled", true); pref("media.wmf.decoder.thread-count", -1); pref("media.wmf.dxva.enabled", true); pref("media.wmf.dxva.d3d11.enabled", true); pref("media.wmf.dxva.max-videos", 8); pref("media.wmf.low-latency.enabled", false); pref("media.wmf.skip-blacklist", false); pref("media.wmf.vp9.enabled", true); pref("media.wmf.amd.vp9.enabled", true); pref("media.wmf.allow-unsupported-resolutions", false); pref("media.wmf.use-nv12-format", true); pref("media.wmf.disable-d3d11-for-dlls", "igd11dxva64.dll: 20.19.15.4463, 20.19.15.4454, 20.19.15.4444, 20.19.15.4416, 20.19.15.4404, 20.19.15.4390, 20.19.15.4380, 20.19.15.4377, 20.19.15.4364, 20.19.15.4360, 20.19.15.4352, 20.19.15.4331, 20.19.15.4326, 20.19.15.4300; igd10iumd32.dll: 20.19.15.4444, 20.19.15.4424, 20.19.15.4409, 20.19.15.4390, 20.19.15.4380, 20.19.15.4360, 10.18.10.4358, 20.19.15.4331, 20.19.15.4312, 20.19.15.4300, 10.18.15.4281, 10.18.15.4279, 10.18.10.4276, 10.18.15.4268, 10.18.15.4256, 10.18.10.4252, 10.18.15.4248, 10.18.14.4112, 10.18.10.3958, 10.18.10.3496, 10.18.10.3431, 10.18.10.3412, 10.18.10.3355, 9.18.10.3234, 9.18.10.3071, 9.18.10.3055, 9.18.10.3006; igd10umd32.dll: 9.17.10.4229, 9.17.10.3040, 9.17.10.2884, 9.17.10.2857, 8.15.10.2274, 8.15.10.2272, 8.15.10.2246, 8.15.10.1840, 8.15.10.1808; igd10umd64.dll: 9.17.10.4229, 9.17.10.2884, 9.17.10.2857, 10.18.10.3496; isonyvideoprocessor.dll: 4.1.2247.8090, 4.1.2153.6200; tosqep.dll: 1.2.15.526, 1.1.12.201, 1.0.11.318, 1.0.11.215, 1.0.10.1224; tosqep64.dll: 1.1.12.201, 1.0.11.215; nvwgf2um.dll: 22.21.13.8253, 22.21.13.8233, 22.21.13.8205, 22.21.13.8189, 22.21.13.8178, 22.21.13.8165, 21.21.13.7892, 21.21.13.7878, 21.21.13.7866, 21.21.13.7849, 21.21.13.7654, 21.21.13.7653, 21.21.13.7633, 21.21.13.7619, 21.21.13.7563, 21.21.13.7306, 21.21.13.7290, 21.21.13.7270, 21.21.13.7254, 21.21.13.6939, 21.21.13.6926, 21.21.13.6909, 21.21.13.4201, 21.21.13.4200, 10.18.13.6881, 10.18.13.6839, 10.18.13.6510, 10.18.13.6472, 10.18.13.6143, 10.18.13.5946, 10.18.13.5923, 10.18.13.5921, 10.18.13.5891, 10.18.13.5887, 10.18.13.5582, 10.18.13.5445, 10.18.13.5382, 10.18.13.5362, 9.18.13.4788, 9.18.13.4752, 9.18.13.4725, 9.18.13.4709, 9.18.13.4195, 9.18.13.4192, 9.18.13.4144, 9.18.13.4052, 9.18.13.3788, 9.18.13.3523, 9.18.13.3235, 9.18.13.3165, 9.18.13.2723, 9.18.13.2702, 9.18.13.1422, 9.18.13.1407, 9.18.13.1106, 9.18.13.546; atidxx32.dll: 21.19.151.3, 21.19.142.257, 21.19.137.514, 21.19.137.1, 21.19.134.1, 21.19.128.7, 21.19.128.4, 20.19.0.32837, 20.19.0.32832, 8.17.10.682, 8.17.10.671, 8.17.10.661, 8.17.10.648, 8.17.10.644, 8.17.10.625, 8.17.10.605, 8.17.10.581, 8.17.10.569, 8.17.10.560, 8.17.10.545, 8.17.10.539, 8.17.10.531, 8.17.10.525, 8.17.10.520, 8.17.10.519, 8.17.10.514, 8.17.10.511, 8.17.10.494, 8.17.10.489, 8.17.10.483, 8.17.10.453, 8.17.10.451, 8.17.10.441, 8.17.10.436, 8.17.10.432, 8.17.10.425, 8.17.10.418, 8.17.10.414, 8.17.10.401, 8.17.10.395, 8.17.10.385, 8.17.10.378, 8.17.10.362, 8.17.10.355, 8.17.10.342, 8.17.10.331, 8.17.10.318, 8.17.10.310, 8.17.10.286, 8.17.10.269, 8.17.10.261, 8.17.10.247, 8.17.10.240, 8.15.10.212; atidxx64.dll: 21.19.151.3, 21.19.142.257, 21.19.137.514, 21.19.137.1, 21.19.134.1, 21.19.128.7, 21.19.128.4, 20.19.0.32832, 8.17.10.682, 8.17.10.661, 8.17.10.644, 8.17.10.625; nvumdshim.dll: 10.18.13.6822"); pref("media.wmf.disable-d3d9-for-dlls", "igdumd64.dll: 8.15.10.2189, 8.15.10.2119, 8.15.10.2104, 8.15.10.2102, 8.771.1.0; atiumd64.dll: 7.14.10.833, 7.14.10.867, 7.14.10.885, 7.14.10.903, 7.14.10.911, 8.14.10.768, 9.14.10.1001, 9.14.10.1017, 9.14.10.1080, 9.14.10.1128, 9.14.10.1162, 9.14.10.1171, 9.14.10.1183, 9.14.10.1197, 9.14.10.945, 9.14.10.972, 9.14.10.984, 9.14.10.996"); pref("media.wmf.deblacklisting-for-telemetry-in-gpu-process", true); pref("media.wmf.play-stand-alone", true); pref("media.wmf.use-sync-texture", true); #endif #if defined(MOZ_FFMPEG) #if defined(XP_MACOSX) pref("media.ffmpeg.enabled", false); #else pref("media.ffmpeg.enabled", true); #endif pref("media.libavcodec.allow-obsolete", false); #endif #if defined(MOZ_FFVPX) pref("media.ffvpx.enabled", true); #endif #if defined(MOZ_FFMPEG) || defined(MOZ_FFVPX) pref("media.ffmpeg.low-latency.enabled", false); #endif pref("media.gmp.decoder.enabled", false); pref("media.gmp.decoder.aac", 0); pref("media.gmp.decoder.h264", 0); #ifdef MOZ_RAW pref("media.raw.enabled", true); #endif pref("media.ogg.enabled", true); pref("media.opus.enabled", true); pref("media.wave.enabled", true); pref("media.webm.enabled", true); pref("media.eme.chromium-api.video-shmems", 6); #ifdef MOZ_APPLEMEDIA #ifdef MOZ_WIDGET_UIKIT pref("media.mp3.enabled", true); #endif pref("media.apple.mp3.enabled", true); pref("media.apple.mp4.enabled", true); #endif // GMP storage version number. At startup we check the version against // media.gmp.storage.version.observed, and if the versions don't match, // we clear storage and set media.gmp.storage.version.observed=expected. // This provides a mechanism to clear GMP storage when non-compatible // changes are made. pref("media.gmp.storage.version.expected", 1); // Filter what triggers user notifications. // See DecoderDoctorDocumentWatcher::ReportAnalysis for details. #ifdef NIGHTLY_BUILD pref("media.decoder-doctor.notifications-allowed", "MediaWMFNeeded,MediaWidevineNoWMF,MediaCannotInitializePulseAudio,MediaCannotPlayNoDecoders,MediaUnsupportedLibavcodec,MediaDecodeError"); #else pref("media.decoder-doctor.notifications-allowed", "MediaWMFNeeded,MediaWidevineNoWMF,MediaCannotInitializePulseAudio,MediaCannotPlayNoDecoders,MediaUnsupportedLibavcodec"); #endif pref("media.decoder-doctor.decode-errors-allowed", ""); pref("media.decoder-doctor.decode-warnings-allowed", ""); // Whether we report partial failures. pref("media.decoder-doctor.verbose", false); // Whether DD should consider WMF-disabled a WMF failure, useful for testing. pref("media.decoder-doctor.wmf-disabled-is-failure", false); // URL to report decode issues pref("media.decoder-doctor.new-issue-endpoint", "https://webcompat.com/issues/new"); // Whether to suspend decoding of videos in background tabs. pref("media.suspend-bkgnd-video.enabled", true); // Delay, in ms, from time window goes to background to suspending // video decoders. Defaults to 10 seconds. pref("media.suspend-bkgnd-video.delay-ms", 10000); // Resume video decoding when the cursor is hovering on a background tab to // reduce the resume latency and improve the user experience. pref("media.resume-bkgnd-video-on-tabhover", true);; #ifdef MOZ_WEBRTC pref("media.navigator.enabled", true); pref("media.navigator.video.enabled", true); pref("media.navigator.load_adapt", true); pref("media.navigator.load_adapt.encoder_only", true); pref("media.navigator.load_adapt.measure_interval",1000); pref("media.navigator.load_adapt.avg_seconds",3); pref("media.navigator.load_adapt.high_load","0.90"); pref("media.navigator.load_adapt.low_load","0.40"); pref("media.navigator.video.default_fps",30); pref("media.navigator.video.default_minfps",10); pref("media.navigator.video.use_remb", true); pref("media.navigator.video.use_tmmbr", false); pref("media.navigator.audio.use_fec", true); pref("media.navigator.video.red_ulpfec_enabled", false); pref("media.peerconnection.dtmf.enabled", true); pref("media.webrtc.debug.trace_mask", 0); pref("media.webrtc.debug.multi_log", false); pref("media.webrtc.debug.log_file", ""); pref("media.webrtc.debug.aec_dump_max_size", 4194304); // 4MB pref("media.navigator.video.default_width",0); // adaptive default pref("media.navigator.video.default_height",0); // adaptive default pref("media.peerconnection.enabled", true); pref("media.peerconnection.video.enabled", true); pref("media.navigator.video.max_fs", 12288); // Enough for 2048x1536 pref("media.navigator.video.max_fr", 60); pref("media.navigator.video.h264.level", 31); // 0x42E01f - level 3.1 pref("media.navigator.video.h264.max_br", 0); pref("media.navigator.video.h264.max_mbps", 0); pref("media.peerconnection.video.h264_enabled", false); pref("media.peerconnection.video.vp9_enabled", true); pref("media.getusermedia.aec", 1); pref("media.getusermedia.browser.enabled", false); pref("media.getusermedia.channels", 0); // Desktop is typically VGA capture or more; and qm_select will not drop resolution // below 1/2 in each dimension (or so), so QVGA (320x200) is the lowest here usually. pref("media.peerconnection.video.min_bitrate", 0); pref("media.peerconnection.video.start_bitrate", 0); pref("media.peerconnection.video.max_bitrate", 0); pref("media.peerconnection.video.min_bitrate_estimate", 0); pref("media.peerconnection.video.denoising", false); pref("media.navigator.audio.fake_frequency", 1000); pref("media.navigator.permission.disabled", false); pref("media.navigator.streams.fake", false); pref("media.peerconnection.simulcast", true); pref("media.peerconnection.default_iceservers", "[]"); pref("media.peerconnection.ice.loopback", false); // Set only for testing in offline environments. pref("media.peerconnection.ice.tcp", true); pref("media.peerconnection.ice.tcp_so_sock_count", 0); // Disable SO gathering pref("media.peerconnection.ice.link_local", false); // Set only for testing IPV6 in networks that don't assign IPV6 addresses pref("media.peerconnection.ice.force_interface", ""); // Limit to only a single interface pref("media.peerconnection.ice.relay_only", false); // Limit candidates to TURN pref("media.peerconnection.use_document_iceservers", true); pref("media.peerconnection.identity.enabled", true); pref("media.peerconnection.identity.timeout", 10000); pref("media.peerconnection.ice.stun_client_maximum_transmits", 7); pref("media.peerconnection.ice.trickle_grace_period", 5000); pref("media.peerconnection.ice.no_host", false); pref("media.peerconnection.ice.default_address_only", false); pref("media.peerconnection.ice.proxy_only", false); // These values (aec, agc, and noice) are from media/webrtc/trunk/webrtc/common_types.h // kXxxUnchanged = 0, kXxxDefault = 1, and higher values are specific to each // setting (for Xxx = Ec, Agc, or Ns). Defaults are all set to kXxxDefault here. pref("media.peerconnection.turn.disable", false); #if defined(MOZ_WEBRTC_HARDWARE_AEC_NS) pref("media.getusermedia.aec_enabled", false); pref("media.getusermedia.noise_enabled", false); #else pref("media.getusermedia.aec_enabled", true); pref("media.getusermedia.noise_enabled", true); #endif pref("media.getusermedia.aec_extended_filter", true); pref("media.getusermedia.aec_delay_agnostic", true); pref("media.getusermedia.noise", 1); pref("media.getusermedia.agc_enabled", false); pref("media.getusermedia.agc", 1); // capture_delay: Adjustments for OS-specific input delay (lower bound) // playout_delay: Adjustments for OS-specific AudioStream+cubeb+output delay (lower bound) // full_duplex: enable cubeb full-duplex capture/playback #if defined(XP_MACOSX) pref("media.peerconnection.capture_delay", 50); pref("media.getusermedia.playout_delay", 10); pref("media.navigator.audio.full_duplex", true); #elif defined(XP_WIN) pref("media.peerconnection.capture_delay", 50); pref("media.getusermedia.playout_delay", 40); pref("media.navigator.audio.full_duplex", true); #elif defined(ANDROID) pref("media.peerconnection.capture_delay", 100); pref("media.getusermedia.playout_delay", 100); pref("media.navigator.audio.full_duplex", true); pref("media.navigator.hardware.vp8_encode.acceleration_enabled", true); pref("media.navigator.hardware.vp8_encode.acceleration_remote_enabled", true); pref("media.navigator.hardware.vp8_decode.acceleration_enabled", false); #elif defined(XP_LINUX) pref("media.peerconnection.capture_delay", 70); pref("media.getusermedia.playout_delay", 50); pref("media.navigator.audio.full_duplex", true); #else // *BSD, others - merely a guess for now pref("media.peerconnection.capture_delay", 50); pref("media.getusermedia.playout_delay", 50); pref("media.navigator.audio.full_duplex", false); #endif // Use MediaDataDecoder API for WebRTC, this includes hardware acceleration for // decoding. pref("media.navigator.mediadatadecoder_enabled", false); #endif pref("dom.webaudio.enabled", true); #if !defined(ANDROID) pref("media.getusermedia.screensharing.enabled", true); #endif #ifdef RELEASE_OR_BETA pref("media.getusermedia.screensharing.allowed_domains", "webex.com,*.webex.com,ciscospark.com,*.ciscospark.com,projectsquared.com,*.projectsquared.com,*.room.co,room.co,beta.talky.io,talky.io,*.clearslide.com,appear.in,*.appear.in,tokbox.com,*.tokbox.com,*.sso.francetelecom.fr,*.si.francetelecom.fr,*.sso.infra.ftgroup,*.multimedia-conference.orange-business.com,*.espacecollaboration.orange-business.com,free.gotomeeting.com,g2m.me,*.g2m.me,*.mypurecloud.com,*.mypurecloud.com.au,spreed.me,*.spreed.me,*.spreed.com,air.mozilla.org,*.circuit.com,*.yourcircuit.com,circuit.siemens.com,yourcircuit.siemens.com,circuitsandbox.net,*.unify.com,tandi.circuitsandbox.net,*.ericsson.net,*.cct.ericsson.net,*.opentok.com,*.conf.meetecho.com,meet.jit.si,*.meet.jit.si,web.stage.speakeasyapp.net,web.speakeasyapp.net,*.hipchat.me,*.beta-wspbx.com,*.wspbx.com,*.unifiedcloudit.com,*.smartboxuc.com,*.smartbox-uc.com,*.panterranetworks.com,pexipdemo.com,*.pexipdemo.com,pex.me,*.pex.me,*.rd.pexip.com,1click.io,*.1click.io,*.fuze.com,*.fuzemeeting.com,*.thinkingphones.com,gotomeeting.com,*.gotomeeting.com,gotowebinar.com,*.gotowebinar.com,gototraining.com,*.gototraining.com,citrix.com,*.citrix.com,expertcity.com,*.expertcity.com,citrixonline.com,*.citrixonline.com,g2m.me,*.g2m.me,gotomeet.me,*.gotomeet.me,gotomeet.at,*.gotomeet.at,miriadaxdes.miriadax.net,certificacion.miriadax.net,miriadax.net,*.wire.com,sylaps.com,*.sylaps.com,bluejeans.com,*.bluejeans.com,*.a.bluejeans.com,*.bbcollab.com"); #else // includes Mozilla's test domain: mozilla.github.io (not intended for release) pref("media.getusermedia.screensharing.allowed_domains", "mozilla.github.io,webex.com,*.webex.com,ciscospark.com,*.ciscospark.com,projectsquared.com,*.projectsquared.com,*.room.co,room.co,beta.talky.io,talky.io,*.clearslide.com,appear.in,*.appear.in,tokbox.com,*.tokbox.com,*.sso.francetelecom.fr,*.si.francetelecom.fr,*.sso.infra.ftgroup,*.multimedia-conference.orange-business.com,*.espacecollaboration.orange-business.com,free.gotomeeting.com,g2m.me,*.g2m.me,*.mypurecloud.com,*.mypurecloud.com.au,spreed.me,*.spreed.me,*.spreed.com,air.mozilla.org,*.circuit.com,*.yourcircuit.com,circuit.siemens.com,yourcircuit.siemens.com,circuitsandbox.net,*.unify.com,tandi.circuitsandbox.net,*.ericsson.net,*.cct.ericsson.net,*.opentok.com,*.conf.meetecho.com,meet.jit.si,*.meet.jit.si,web.stage.speakeasyapp.net,web.speakeasyapp.net,*.hipchat.me,*.beta-wspbx.com,*.wspbx.com,*.unifiedcloudit.com,*.smartboxuc.com,*.smartbox-uc.com,*.panterranetworks.com,pexipdemo.com,*.pexipdemo.com,pex.me,*.pex.me,*.rd.pexip.com,1click.io,*.1click.io,*.fuze.com,*.fuzemeeting.com,*.thinkingphones.com,gotomeeting.com,*.gotomeeting.com,gotowebinar.com,*.gotowebinar.com,gototraining.com,*.gototraining.com,citrix.com,*.citrix.com,expertcity.com,*.expertcity.com,citrixonline.com,*.citrixonline.com,g2m.me,*.g2m.me,gotomeet.me,*.gotomeet.me,gotomeet.at,*.gotomeet.at,miriadaxdes.miriadax.net,certificacion.miriadax.net,miriadax.net,*.wire.com,sylaps.com,*.sylaps.com,bluejeans.com,*.bluejeans.com,*.a.bluejeans.com,*.bbcollab.com"); #endif pref("media.getusermedia.audiocapture.enabled", false); // TextTrack WebVTT Region extension support. pref("media.webvtt.regions.enabled", false); // WebVTT pseudo element and class support. pref("media.webvtt.pseudo.enabled", true); // AudioTrack and VideoTrack support pref("media.track.enabled", false); // Whether to enable MediaSource support. pref("media.mediasource.enabled", true); pref("media.mediasource.mp4.enabled", true); #if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) pref("media.mediasource.webm.enabled", false); #else pref("media.mediasource.webm.enabled", true); #endif pref("media.mediasource.webm.audio.enabled", true); // Use new MediaFormatReader architecture for plain ogg. pref("media.flac.enabled", true); pref("media.ogg.flac.enabled", true); pref("media.benchmark.vp9.threshold", 150); pref("media.benchmark.frames", 300); pref("media.benchmark.timeout", 1000); #ifdef MOZ_WEBSPEECH pref("media.webspeech.recognition.enable", false); pref("media.webspeech.synth.enabled", false); #endif #ifdef MOZ_WEBM_ENCODER pref("media.encoder.webm.enabled", true); #endif // Whether to autostart a media element with an |autoplay| attribute pref("media.autoplay.enabled", true); // The default number of decoded video frames that are enqueued in // MediaDecoderReader's mVideoQueue. pref("media.video-queue.default-size", 10); // The maximum number of queued frames to send to the compositor. // By default, send all of them. pref("media.video-queue.send-to-compositor-size", 9999); // Whether to disable the video stats to prevent fingerprinting pref("media.video_stats.enabled", true); // Whether to check the decoder supports recycling. pref("media.decoder.recycle.enabled", false); //Weather MFR should try to skip to next key frame or not. pref("media.decoder.skip-to-next-key-frame.enabled", true); // Log level for cubeb, the audio input/output system. Valid values are // "verbose", "normal" and "" (log disabled). pref("media.cubeb.logging_level", ""); // Set to true to force demux/decode warnings to be treated as errors. pref("media.playback.warnings-as-errors", false); // Weather we allow AMD switchable graphics pref("layers.amd-switchable-gfx.enabled", true); // Whether to use async panning and zooming pref("layers.async-pan-zoom.enabled", true); // Whether to enable event region building during painting pref("layout.event-regions.enabled", false); // Whether to enable arbitrary layer geometry for OpenGL compositor pref("layers.geometry.opengl.enabled", true); // Whether to enable arbitrary layer geometry for Basic compositor pref("layers.geometry.basic.enabled", true); // Whether to enable arbitrary layer geometry for DirectX compositor pref("layers.geometry.d3d11.enabled", true); // APZ preferences. For documentation/details on what these prefs do, check // gfx/layers/apz/src/AsyncPanZoomController.cpp. pref("apz.allow_checkerboarding", true); pref("apz.allow_immediate_handoff", true); pref("apz.allow_zooming", false); pref("apz.autoscroll.enabled", true); // Whether to lock touch scrolling to one axis at a time // 0 = FREE (No locking at all) // 1 = STANDARD (Once locked, remain locked until scrolling ends) // 2 = STICKY (Allow lock to be broken, with hysteresis) pref("apz.axis_lock.mode", 0); pref("apz.axis_lock.lock_angle", "0.5235987"); // PI / 6 (30 degrees) pref("apz.axis_lock.breakout_threshold", "0.03125"); // 1/32 inches pref("apz.axis_lock.breakout_angle", "0.3926991"); // PI / 8 (22.5 degrees) pref("apz.axis_lock.direct_pan_angle", "1.047197"); // PI / 3 (60 degrees) pref("apz.content_response_timeout", 400); pref("apz.drag.enabled", true); pref("apz.drag.initial.enabled", true); pref("apz.drag.touch.enabled", true); pref("apz.danger_zone_x", 50); pref("apz.danger_zone_y", 100); pref("apz.disable_for_scroll_linked_effects", false); pref("apz.displayport_expiry_ms", 15000); pref("apz.enlarge_displayport_when_clipped", false); pref("apz.fling_accel_base_mult", "1.0"); pref("apz.fling_accel_interval_ms", 500); pref("apz.fling_accel_min_velocity", "1.5"); pref("apz.fling_accel_supplemental_mult", "1.0"); pref("apz.fling_curve_function_x1", "0.0"); pref("apz.fling_curve_function_y1", "0.0"); pref("apz.fling_curve_function_x2", "1.0"); pref("apz.fling_curve_function_y2", "1.0"); pref("apz.fling_curve_threshold_inches_per_ms", "-1.0"); pref("apz.fling_friction", "0.002"); pref("apz.fling_min_velocity_threshold", "0.5"); pref("apz.fling_stop_on_tap_threshold", "0.05"); pref("apz.fling_stopped_threshold", "0.01"); pref("apz.frame_delay.enabled", true); #if !defined(MOZ_WIDGET_ANDROID) pref("apz.keyboard.enabled", true); pref("apz.keyboard.passive-listeners", true); #else pref("apz.keyboard.enabled", false); pref("apz.keyboard.passive-listeners", false); #endif pref("apz.max_velocity_inches_per_ms", "-1.0"); pref("apz.max_velocity_queue_size", 5); pref("apz.min_skate_speed", "1.0"); pref("apz.minimap.enabled", false); pref("apz.minimap.visibility.enabled", false); pref("apz.one_touch_pinch.enabled", true); pref("apz.overscroll.enabled", false); pref("apz.overscroll.min_pan_distance_ratio", "1.0"); pref("apz.overscroll.spring_friction", "0.015"); pref("apz.overscroll.spring_stiffness", "0.0018"); pref("apz.overscroll.stop_distance_threshold", "5.0"); pref("apz.overscroll.stop_velocity_threshold", "0.01"); pref("apz.overscroll.stretch_factor", "0.35"); pref("apz.paint_skipping.enabled", true); // Fetch displayport updates early from the message queue pref("apz.peek_messages.enabled", true); pref("apz.popups.enabled", false); // Whether to print the APZC tree for debugging pref("apz.printtree", false); #ifdef NIGHTLY_BUILD pref("apz.record_checkerboarding", true); #else pref("apz.record_checkerboarding", false); #endif pref("apz.second_tap_tolerance", "0.5"); pref("apz.test.logging_enabled", false); pref("apz.touch_start_tolerance", "0.1"); pref("apz.touch_move_tolerance", "0.1"); pref("apz.velocity_bias", "0.0"); pref("apz.velocity_relevance_time_ms", 150); pref("apz.x_skate_highmem_adjust", "0.0"); pref("apz.y_skate_highmem_adjust", "0.0"); pref("apz.x_skate_size_multiplier", "1.25"); pref("apz.y_skate_size_multiplier", "3.5"); pref("apz.x_stationary_size_multiplier", "1.5"); pref("apz.y_stationary_size_multiplier", "3.5"); pref("apz.zoom_animation_duration_ms", 250); pref("apz.scale_repaint_delay_ms", 500); #if defined(MOZ_WIDGET_ANDROID) // Mobile prefs pref("apz.allow_zooming", true); pref("apz.enlarge_displayport_when_clipped", true); pref("apz.y_skate_size_multiplier", "1.5"); pref("apz.y_stationary_size_multiplier", "1.5"); #endif #ifdef XP_MACOSX // Whether to run in native HiDPI mode on machines with "Retina"/HiDPI display; // <= 0 : hidpi mode disabled, display will just use pixel-based upscaling // == 1 : hidpi supported if all screens share the same backingScaleFactor // >= 2 : hidpi supported even with mixed backingScaleFactors (somewhat broken) pref("gfx.hidpi.enabled", 2); #endif #if !defined(MOZ_WIDGET_ANDROID) // Use containerless scrolling for now on desktop. pref("layout.scroll.root-frame-containers", false); #endif pref("layout.scrollbars.always-layerize-track", false); // Whether to enable LayerScope tool and default listening port pref("gfx.layerscope.enabled", false); pref("gfx.layerscope.port", 23456); // Log severe performance warnings to the error console and profiles. // This should be use to quickly find which slow paths are used by test cases. pref("gfx.perf-warnings.enabled", false); // 0 = Off, 1 = Full, 2 = Tagged Images Only. // See eCMSMode in gfx/thebes/gfxPlatform.h pref("gfx.color_management.mode", 2); pref("gfx.color_management.display_profile", ""); pref("gfx.color_management.rendering_intent", 0); pref("gfx.color_management.enablev4", false); pref("gfx.downloadable_fonts.enabled", true); pref("gfx.downloadable_fonts.fallback_delay", 3000); pref("gfx.downloadable_fonts.fallback_delay_short", 100); // disable downloadable font cache so that behavior is consistently // the uncached load behavior across pages (useful for testing reflow problems) pref("gfx.downloadable_fonts.disable_cache", false); pref("gfx.downloadable_fonts.woff2.enabled", true); // Whether OTS validation should be applied to OpenType Layout (OTL) tables #ifdef RELEASE_OR_BETA pref("gfx.downloadable_fonts.otl_validation", false); #else pref("gfx.downloadable_fonts.otl_validation", true); #endif // Whether to preserve OpenType variation tables in fonts (bypassing OTS) pref("gfx.downloadable_fonts.keep_variation_tables", false); #ifdef ANDROID pref("gfx.bundled_fonts.enabled", true); pref("gfx.bundled_fonts.force-enabled", false); #endif // Do we fire a notification about missing fonts, so the front-end can decide // whether to try and do something about it (e.g. download additional fonts)? pref("gfx.missing_fonts.notify", false); // prefs controlling the font (name/cmap) loader that runs shortly after startup pref("gfx.font_loader.families_per_slice", 3); // read in info 3 families at a time #ifdef XP_WIN pref("gfx.font_loader.delay", 120000); // 2 minutes after startup pref("gfx.font_loader.interval", 1000); // every 1 second until complete #else pref("gfx.font_loader.delay", 8000); // 8 secs after startup pref("gfx.font_loader.interval", 50); // run every 50 ms #endif // whether to always search all font cmaps during system font fallback pref("gfx.font_rendering.fallback.always_use_cmaps", false); // cache shaped word results pref("gfx.font_rendering.wordcache.charlimit", 32); // cache shaped word results pref("gfx.font_rendering.wordcache.maxentries", 10000); pref("gfx.font_rendering.graphite.enabled", true); #ifdef XP_WIN pref("gfx.font_rendering.directwrite.force-enabled", false); pref("gfx.font_rendering.directwrite.use_gdi_table_loading", true); #endif pref("gfx.font_rendering.opentype_svg.enabled", true); #ifdef XP_WIN // comma separated list of backends to use in order of preference // e.g., pref("gfx.canvas.azure.backends", "direct2d,skia,cairo"); pref("gfx.canvas.azure.backends", "direct2d1.1,skia,cairo"); pref("gfx.content.azure.backends", "direct2d1.1,skia,cairo"); #else #ifdef XP_MACOSX pref("gfx.content.azure.backends", "skia"); pref("gfx.canvas.azure.backends", "skia"); // Accelerated cg canvas where available (10.7+) pref("gfx.canvas.azure.accelerated", true); #else pref("gfx.canvas.azure.backends", "skia"); pref("gfx.content.azure.backends", "skia"); #endif #endif pref("gfx.canvas.skiagl.dynamic-cache", true); pref("gfx.text.disable-aa", false); pref("gfx.work-around-driver-bugs", true); pref("gfx.draw-color-bars", false); pref("gfx.logging.painted-pixel-count.enabled", false); pref("gfx.logging.texture-usage.enabled", false); pref("gfx.logging.peak-texture-usage.enabled", false); pref("gfx.ycbcr.accurate-conversion", false); #ifdef MOZ_ENABLE_WEBRENDER pref("gfx.webrender.enabled", true); #else pref("gfx.webrender.enabled", false); #endif #ifdef XP_WIN pref("gfx.webrender.force-angle", true); #endif pref("gfx.webrender.highlight-painted-layers", false); pref("gfx.webrender.blob-images", false); // WebRender debugging utilities. pref("gfx.webrender.debug.texture-cache", false); pref("gfx.webrender.debug.render-targets", false); pref("gfx.webrender.debug.alpha-primitives", false); pref("gfx.webrender.debug.profiler", false); // Whether webrender should be used as much as possible. pref("gfx.webrendest.enabled", false); pref("accessibility.browsewithcaret", false); pref("accessibility.warn_on_browsewithcaret", true); pref("accessibility.browsewithcaret_shortcut.enabled", true); #ifndef XP_MACOSX // Tab focus model bit field: // 1 focuses text controls, 2 focuses other form elements, 4 adds links. // Most users will want 1, 3, or 7. // On OS X, we use Full Keyboard Access system preference, // unless accessibility.tabfocus is set by the user. pref("accessibility.tabfocus", 7); pref("accessibility.tabfocus_applies_to_xul", false); #else // Only on mac tabfocus is expected to handle UI widgets as well as web content pref("accessibility.tabfocus_applies_to_xul", true); #endif // We follow the "Click in the scrollbar to:" system preference on OS X and // "gtk-primary-button-warps-slider" property with GTK (since 2.24 / 3.6), // unless this preference is explicitly set. #if !defined(XP_MACOSX) && !defined(MOZ_WIDGET_GTK) pref("ui.scrollToClick", 0); #endif // provide ability to turn on support for canvas focus rings pref("canvas.focusring.enabled", true); pref("canvas.customfocusring.enabled", false); pref("canvas.hitregions.enabled", false); pref("canvas.filters.enabled", true); // Add support for canvas path objects pref("canvas.path.enabled", true); pref("canvas.capturestream.enabled", true); // Disable the ImageBitmap-extensions for now. pref("canvas.imagebitmap_extensions.enabled", false); // We want the ability to forcibly disable platform a11y, because // some non-a11y-related components attempt to bring it up. See bug // 538530 for details about Windows; we have a pref here that allows it // to be disabled for performance and testing resons. // See bug 761589 for the crossplatform aspect. // // This pref is checked only once, and the browser needs a restart to // pick up any changes. // // Values are -1 always on. 1 always off, 0 is auto as some platform perform // further checks. pref("accessibility.force_disabled", 0); pref("accessibility.AOM.enabled", false); #ifdef XP_WIN // Some accessibility tools poke at windows in the plugin process during setup // which can cause hangs. To hack around this set accessibility.delay_plugins // to true, you can also try increasing accessibility.delay_plugin_time if your // machine is slow and you still experience hangs. // See bug 781791. pref("accessibility.delay_plugins", false); pref("accessibility.delay_plugin_time", 10000); // The COM handler used for Windows e10s performance and live regions pref("accessibility.handler.enabled", true); #endif pref("focusmanager.testmode", false); pref("accessibility.usetexttospeech", ""); pref("accessibility.usebrailledisplay", ""); pref("accessibility.accesskeycausesactivation", true); pref("accessibility.mouse_focuses_formcontrol", false); // Type Ahead Find pref("accessibility.typeaheadfind", true); pref("accessibility.typeaheadfind.autostart", true); // casesensitive: controls the find bar's case-sensitivity // 0 - "never" (case-insensitive) // 1 - "always" (case-sensitive) // other - "auto" (case-sensitive for mixed-case input, insensitive otherwise) pref("accessibility.typeaheadfind.casesensitive", 0); pref("accessibility.typeaheadfind.linksonly", true); pref("accessibility.typeaheadfind.startlinksonly", false); pref("accessibility.typeaheadfind.timeout", 4000); pref("accessibility.typeaheadfind.enabletimeout", true); pref("accessibility.typeaheadfind.soundURL", "beep"); pref("accessibility.typeaheadfind.enablesound", true); #ifdef XP_MACOSX pref("accessibility.typeaheadfind.prefillwithselection", false); #else pref("accessibility.typeaheadfind.prefillwithselection", true); #endif pref("accessibility.typeaheadfind.matchesCountLimit", 1000); pref("findbar.highlightAll", false); pref("findbar.modalHighlight", false); pref("findbar.entireword", false); pref("findbar.iteratorTimeout", 100); // use Mac OS X Appearance panel text smoothing setting when rendering text, disabled by default pref("gfx.use_text_smoothing_setting", false); // Number of characters to consider emphasizing for rich autocomplete results pref("toolkit.autocomplete.richBoundaryCutoff", 200); // Variable controlling logging for osfile. pref("toolkit.osfile.log", false); pref("toolkit.cosmeticAnimations.enabled", true); pref("toolkit.scrollbox.smoothScroll", true); pref("toolkit.scrollbox.scrollIncrement", 20); pref("toolkit.scrollbox.verticalScrollDistance", 3); pref("toolkit.scrollbox.horizontalScrollDistance", 5); pref("toolkit.scrollbox.clickToScroll.scrollDelay", 150); // Telemetry settings. // Server to submit telemetry pings to. pref("toolkit.telemetry.server", "https://incoming.telemetry.mozilla.org"); // Telemetry server owner. Please change if you set toolkit.telemetry.server to a different server pref("toolkit.telemetry.server_owner", "Mozilla"); // Information page about telemetry (temporary ; will be about:telemetry in the end) pref("toolkit.telemetry.infoURL", "https://www.mozilla.org/legal/privacy/firefox.html#telemetry"); // Determines whether full SQL strings are returned when they might contain sensitive info // i.e. dynamically constructed SQL strings or SQL executed by addons against addon DBs pref("toolkit.telemetry.debugSlowSql", false); // Whether to use the unified telemetry behavior, requires a restart. pref("toolkit.telemetry.unified", true); // AsyncShutdown delay before crashing in case of shutdown freeze pref("toolkit.asyncshutdown.crash_timeout", 60000); // Extra logging for AsyncShutdown barriers and phases pref("toolkit.asyncshutdown.log", false); // Tells if DevTools have been explicitely enabled by the user. // This pref allows to disable all features related to DevTools // for users that never use them. // Until bug 1361080 lands, we always consider them enabled. pref("devtools.enabled", true); // Enable deprecation warnings. pref("devtools.errorconsole.deprecation_warnings", true); #ifdef NIGHTLY_BUILD // Don't show the Browser Toolbox prompt on local builds / nightly sticky_pref("devtools.debugger.prompt-connection", false); #else sticky_pref("devtools.debugger.prompt-connection", true); #endif #ifdef MOZILLA_OFFICIAL // Disable debugging chrome sticky_pref("devtools.chrome.enabled", false); // Disable remote debugging connections sticky_pref("devtools.debugger.remote-enabled", false); // enable JS dump() function. sticky_pref("browser.dom.window.dump.enabled", false); #else // In local builds, enable the browser toolbox by default sticky_pref("devtools.chrome.enabled", true); sticky_pref("devtools.debugger.remote-enabled", true); sticky_pref("browser.dom.window.dump.enabled", true); #endif // Disable remote debugging protocol logging pref("devtools.debugger.log", false); pref("devtools.debugger.log.verbose", false); pref("devtools.debugger.remote-port", 6000); pref("devtools.debugger.remote-websocket", false); // Force debugger server binding on the loopback interface pref("devtools.debugger.force-local", true); // Block tools from seeing / interacting with certified apps pref("devtools.debugger.forbid-certified-apps", true); // DevTools default color unit pref("devtools.defaultColorUnit", "authored"); // Used for devtools debugging pref("devtools.dump.emit", false); // Controls whether EventEmitter module throws dump message on each emit pref("toolkit.dump.emit", false); // Disable device discovery logging pref("devtools.discovery.log", false); // Whether to scan for DevTools devices via WiFi pref("devtools.remote.wifi.scan", true); // Whether UI options for controlling device visibility over WiFi are shown // N.B.: This does not set whether the device can be discovered via WiFi, only // whether the UI control to make such a choice is shown to the user pref("devtools.remote.wifi.visible", true); // Client must complete TLS handshake within this window (ms) pref("devtools.remote.tls-handshake-timeout", 10000); // URL of the remote JSON catalog used for device simulation pref("devtools.devices.url", "https://code.cdn.mozilla.net/devices/devices.json"); // Display the introductory text pref("devtools.gcli.hideIntro", false); // How eager are we to show help: never=1, sometimes=2, always=3 pref("devtools.gcli.eagerHelper", 2); // Alias to the script URLs for inject command. pref("devtools.gcli.jquerySrc", "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"); pref("devtools.gcli.lodashSrc", "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.6.1/lodash.min.js"); pref("devtools.gcli.underscoreSrc", "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"); // Set imgur upload client ID pref("devtools.gcli.imgurClientID", '0df414e888d7240'); // Imgur's upload URL pref("devtools.gcli.imgurUploadURL", "https://api.imgur.com/3/image"); // GCLI commands directory pref("devtools.commands.dir", ""); // Allows setting the performance marks for which telemetry metrics will be recorded. pref("devtools.telemetry.supported_performance_marks", "contentInteractive,navigationInteractive,navigationLoaded,visuallyLoaded,fullyLoaded,mediaEnumerated,scanEnd"); // Deprecation warnings after DevTools file migration. pref("devtools.migration.warnings", true); // view source pref("view_source.syntax_highlight", true); pref("view_source.wrap_long_lines", false); pref("view_source.editor.external", false); pref("view_source.editor.path", ""); // allows to add further arguments to the editor; use the %LINE% placeholder // for jumping to a specific line (e.g. "/line:%LINE%" or "--goto %LINE%") pref("view_source.editor.args", ""); // When true this will word-wrap plain text documents. pref("plain_text.wrap_long_lines", false); // whether or not to draw images while dragging pref("nglayout.enable_drag_images", true); // enable/disable paint flashing --- useful for debugging // the first one applies to everything, the second one only to chrome pref("nglayout.debug.paint_flashing", false); pref("nglayout.debug.paint_flashing_chrome", false); // enable/disable widget update area flashing --- only supported with // BasicLayers (other layer managers always update the entire widget area) pref("nglayout.debug.widget_update_flashing", false); // Enable/disable display list invalidation logging --- useful for debugging. pref("nglayout.debug.invalidation", false); // Whether frame visibility tracking is enabled globally. pref("layout.framevisibility.enabled", true); pref("layout.framevisibility.numscrollportwidths", 0); pref("layout.framevisibility.numscrollportheights", 1); // scrollbar snapping region // 0 - off // 1 and higher - slider thickness multiple pref("slider.snapMultiplier", 0); // option to choose plug-in finder pref("application.use_ns_plugin_finder", false); // URI fixup prefs pref("browser.fixup.alternate.enabled", true); pref("browser.fixup.alternate.prefix", "www."); pref("browser.fixup.alternate.suffix", ".com"); pref("browser.fixup.dns_first_for_single_words", false); pref("browser.fixup.hide_user_pass", true); // Location Bar AutoComplete pref("browser.urlbar.autocomplete.enabled", true); #ifdef NIGHTLY_BUILD pref("browser.urlbar.usepreloadedtopurls.enabled", true); #else pref("browser.urlbar.usepreloadedtopurls.enabled", false); #endif pref("browser.urlbar.usepreloadedtopurls.expire_days", 14); // Print header customization // Use the following codes: // &T - Title // &U - Document URL // &D - Date/Time // &P - Page Number // &PT - Page Number "of" Page total // Set each header to a string containing zero or one of these codes // and the code will be replaced in that string by the corresponding data pref("print.print_headerleft", "&T"); pref("print.print_headercenter", ""); pref("print.print_headerright", "&U"); pref("print.print_footerleft", "&PT"); pref("print.print_footercenter", ""); pref("print.print_footerright", "&D"); pref("print.show_print_progress", true); // xxxbsmedberg: more toolkit prefs // When this is set to false each window has its own PrintSettings // and a change in one window does not affect the others pref("print.use_global_printsettings", true); // Save the Printings after each print job pref("print.save_print_settings", true); // Cache old Presentation when going into Print Preview pref("print.always_cache_old_pres", false); // Enables you to specify the amount of the paper that is to be treated // as unwriteable. The print_edge_XXX and print_margin_XXX preferences // are treated as offsets that are added to this pref. // Default is "-1", which means "use the system default". (If there is // no system default, then the -1 is treated as if it were 0.) // This is used by both Printing and Print Preview. // Units are in 1/100ths of an inch. pref("print.print_unwriteable_margin_top", -1); pref("print.print_unwriteable_margin_left", -1); pref("print.print_unwriteable_margin_right", -1); pref("print.print_unwriteable_margin_bottom", -1); // Enables you to specify the gap from the edge of the paper's // unwriteable area to the margin. // This is used by both Printing and Print Preview // Units are in 1/100ths of an inch. pref("print.print_edge_top", 0); pref("print.print_edge_left", 0); pref("print.print_edge_right", 0); pref("print.print_edge_bottom", 0); // Print via the parent process. This is only used when e10s is enabled. #if !defined(MOZ_WIDGET_ANDROID) pref("print.print_via_parent", true); #else pref("print.print_via_parent", false); #endif // Pref used by the spellchecker extension to control the // maximum number of misspelled words that will be underlined // in a document. pref("extensions.spellcheck.inline.max-misspellings", 500); // Prefs used by libeditor. Prefs specific to seamonkey composer // belong in comm-central/editor/ui/composer.js pref("editor.use_custom_colors", false); pref("editor.singleLine.pasteNewlines", 2); pref("editor.use_css", false); pref("editor.css.default_length_unit", "px"); pref("editor.resizing.preserve_ratio", true); pref("editor.positioning.offset", 0); #ifdef EARLY_BETA_OR_EARLIER pref("editor.use_div_for_default_newlines", true); #else pref("editor.use_div_for_default_newlines", false); #endif // Scripts & Windows prefs pref("dom.disable_beforeunload", false); pref("dom.disable_window_flip", false); pref("dom.disable_window_move_resize", false); pref("dom.disable_window_status_change", false); pref("dom.disable_window_open_feature.titlebar", false); pref("dom.disable_window_open_feature.close", false); pref("dom.disable_window_open_feature.toolbar", false); pref("dom.disable_window_open_feature.location", false); pref("dom.disable_window_open_feature.personalbar", false); pref("dom.disable_window_open_feature.menubar", false); pref("dom.disable_window_open_feature.resizable", true); pref("dom.disable_window_open_feature.minimizable", false); pref("dom.disable_window_open_feature.status", true); pref("dom.disable_window_showModalDialog", true); pref("dom.allow_scripts_to_close_windows", false); pref("dom.require_user_interaction_for_beforeunload", true); pref("dom.disable_open_during_load", false); pref("dom.popup_maximum", 20); pref("dom.popup_allowed_events", "change click dblclick mouseup pointerup notificationclick reset submit touchend"); pref("dom.disable_open_click_delay", 1000); pref("dom.storage.enabled", true); pref("dom.storage.default_quota", 5120); pref("dom.storage.testing", false); pref("dom.send_after_paint_to_content", false); // Timeout clamp in ms for timeouts we clamp pref("dom.min_timeout_value", 4); // And for background windows pref("dom.min_background_timeout_value", 1000); // Timeout clamp in ms for tracking timeouts we clamp // Note that this requires the privacy.trackingprotection.annotate_channels pref to be on in order to have any effect. #ifdef NIGHTLY_BUILD pref("dom.min_tracking_timeout_value", 10000); #else pref("dom.min_tracking_timeout_value", 4); #endif // And for background windows // Note that this requires the privacy.trackingprotection.annotate_channels pref to be on in order to have any effect. pref("dom.min_tracking_background_timeout_value", 10000); // Delay in ms from document load until we start throttling background timeouts. pref("dom.timeout.throttling_delay", 30000); // Time (in ms) that it takes to regenerate 1ms. pref("dom.timeout.background_budget_regeneration_rate", 100); // Maximum value (in ms) for the background budget. Only valid for // values greater than 0. pref("dom.timeout.background_throttling_max_budget", 50); // Time (in ms) that it takes to regenerate 1ms. pref("dom.timeout.foreground_budget_regeneration_rate", 1); // Maximum value (in ms) for the background budget. Only valid for // values greater than 0. pref("dom.timeout.foreground_throttling_max_budget", -1); // The maximum amount a timeout can be delayed by budget throttling pref("dom.timeout.budget_throttling_max_delay", 15000); // Turn on budget throttling by default pref("dom.timeout.enable_budget_timer_throttling", true); // Don't use new input types pref("dom.experimental_forms", false); // Enable : pref("dom.forms.number", true); // Enable by default. It will be turned off for remaining // platforms which don't have a color picker implemented yet. pref("dom.forms.color", true); // Support for input type=date and type=time. pref("dom.forms.datetime", true); // Support for input type=month, type=week and type=datetime-local. By default, // disabled. pref("dom.forms.datetime.others", false); // Enable time picker UI. By default, disabled. pref("dom.forms.datetime.timepicker", false); // Support @autocomplete values for form autofill feature. pref("dom.forms.autocomplete.formautofill", false); // Enable search in // popups. Disabled on Linux due to bug 1338283. #ifdef XP_LINUX pref("dom.forms.select.customstyling", false); #else pref("dom.forms.select.customstyling", true); #endif pref("dom.select_popup_in_parent.enabled", false); // Enable Directory API. By default, disabled. pref("dom.input.dirpicker", false); // Enable not moving the cursor to end when a text input or textarea has .value // set to the value it already has. By default, enabled. pref("dom.input.skip_cursor_move_for_same_value_set", true); // Enables system messages and activities pref("dom.sysmsg.enabled", false); // Enable pre-installed applications. pref("dom.webapps.useCurrentProfile", false); pref("dom.cycle_collector.incremental", true); // Whether Xrays expose properties from the named properties object (aka global // scope polluter). Values are: // 0 = properties exposed on Xrays // 1 = properties exposed on Xrays, except in web extension content scripts. // 2 = properties not exposed on xrays pref("dom.allow_named_properties_object_for_xrays", 1); // Parsing perf prefs. For now just mimic what the old code did. #ifndef XP_WIN pref("content.sink.pending_event_mode", 0); #endif // Disable popups from plugins by default // 0 = openAllowed // 1 = openControlled // 2 = openBlocked // 3 = openAbused pref("privacy.popups.disable_from_plugins", 3); // send "do not track" HTTP header, disabled by default pref("privacy.donottrackheader.enabled", false); // If true, close button will be shown on permission prompts // and for all PopupNotifications, the secondary action of // the popup will be called when the popup is dismissed. pref("privacy.permissionPrompts.showCloseButton", false); // Enforce tracking protection in all modes pref("privacy.trackingprotection.enabled", false); // Enforce tracking protection in Private Browsing mode pref("privacy.trackingprotection.pbmode.enabled", true); // Annotate channels based on the tracking protection list in all modes pref("privacy.trackingprotection.annotate_channels", true); // First Party Isolation (double keying), disabled by default pref("privacy.firstparty.isolate", false); // If false, two windows in the same domain with different first party domains // (top level URLs) can access resources through window.opener. // This pref is effective only when "privacy.firstparty.isolate" is true. pref("privacy.firstparty.isolate.restrict_opener_access", true); // Anti-fingerprinting, disabled by default pref("privacy.resistFingerprinting", false); // Lower the priority of network loads for resources on the tracking protection list. // Note that this requires the privacy.trackingprotection.annotate_channels pref to be on in order to have any effect. #ifdef NIGHTLY_BUILD pref("privacy.trackingprotection.lower_network_priority", true); #else pref("privacy.trackingprotection.lower_network_priority", false); #endif pref("dom.event.contextmenu.enabled", true); pref("dom.event.clipboardevents.enabled", true); pref("dom.event.highrestimestamp.enabled", true); #ifdef NIGHTLY_BUILD pref("dom.event.coalesce_mouse_move", true); #else pref("dom.event.coalesce_mouse_move", false); #endif pref("dom.webcomponents.enabled", false); pref("dom.webcomponents.customelements.enabled", false); pref("javascript.enabled", true); pref("javascript.options.strict", false); #ifdef DEBUG pref("javascript.options.strict.debug", false); #endif pref("javascript.options.baselinejit", true); pref("javascript.options.ion", true); pref("javascript.options.asmjs", true); pref("javascript.options.wasm", true); pref("javascript.options.wasm_ionjit", true); pref("javascript.options.wasm_baselinejit", true); pref("javascript.options.native_regexp", true); pref("javascript.options.parallel_parsing", true); #if !defined(RELEASE_OR_BETA) && !defined(ANDROID) && !defined(XP_IOS) pref("javascript.options.asyncstack", true); #else pref("javascript.options.asyncstack", false); #endif pref("javascript.options.throw_on_asmjs_validation_failure", false); pref("javascript.options.ion.offthread_compilation", true); #ifdef DEBUG pref("javascript.options.jit.full_debug_checks", false); #endif // This preference instructs the JS engine to discard the // source of any privileged JS after compilation. This saves // memory, but makes things like Function.prototype.toSource() // fail. pref("javascript.options.discardSystemSource", false); // Many of the the following preferences tune the SpiderMonkey GC, if you // change the defaults here please also consider changing them in // js/src/jsgc.cpp. They're documented in js/src/jsapi.h. // JSGC_MAX_MALLOC_BYTES // How much malloc memory can be allocated before triggering a GC, in MB. pref("javascript.options.mem.high_water_mark", 128); // JSGC_MAX_BYTES // SpiderMonkey defaults to 2^32-1 bytes, but this is measured in MB so that // cannot be represented directly in order to show it in about:config. pref("javascript.options.mem.max", -1); // JSGC_MAX_NURSERY_BYTES #if defined(ANDROID) || defined(XP_IOS) || defined(MOZ_B2G) pref("javascript.options.mem.nursery.max_kb", 4096); #else pref("javascript.options.mem.nursery.max_kb", 16384); #endif // JSGC_MODE pref("javascript.options.mem.gc_per_zone", true); pref("javascript.options.mem.gc_incremental", true); // JSGC_SLICE_TIME_BUDGET // Override the shell's default of unlimited slice time. pref("javascript.options.mem.gc_incremental_slice_ms", 5); // JSGC_COMPACTING_ENABLED pref("javascript.options.mem.gc_compacting", true); pref("javascript.options.mem.log", false); pref("javascript.options.mem.notify", false); pref("javascript.options.gc_on_memory_pressure", true); pref("javascript.options.compact_on_user_inactive", true); #ifdef NIGHTLY_BUILD pref("javascript.options.compact_on_user_inactive_delay", 15000); // ms #else pref("javascript.options.compact_on_user_inactive_delay", 300000); // ms #endif // JSGC_HIGH_FREQUENCY_TIME_LIMIT pref("javascript.options.mem.gc_high_frequency_time_limit_ms", 1000); // JSGC_HIGH_FREQUENCY_LOW_LIMIT pref("javascript.options.mem.gc_high_frequency_low_limit_mb", 100); // JSGC_HIGH_FREQUENCY_HIGH_LIMIT pref("javascript.options.mem.gc_high_frequency_high_limit_mb", 500); // JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MAX pref("javascript.options.mem.gc_high_frequency_heap_growth_max", 300); // JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MIN pref("javascript.options.mem.gc_high_frequency_heap_growth_min", 150); // JSGC_LOW_FREQUENCY_HEAP_GROWTH pref("javascript.options.mem.gc_low_frequency_heap_growth", 150); // JSGC_DYNAMIC_HEAP_GROWTH // Override SpiderMonkey default (false). pref("javascript.options.mem.gc_dynamic_heap_growth", true); // JSGC_DYNAMIC_MARK_SLICE // Override SpiderMonkey default (false). pref("javascript.options.mem.gc_dynamic_mark_slice", true); // JSGC_REFRESH_FRAME_SLICES_ENABLED pref("javascript.options.mem.gc_refresh_frame_slices_enabled", true); // JSGC_ALLOCATION_THRESHOLD pref("javascript.options.mem.gc_allocation_threshold_mb", 30); // JSGC_ALLOCATION_THRESHOLD_FACTOR pref("javascript.options.mem.gc_allocation_threshold_factor", 90); // JSGC_ALLOCATION_THRESHOLD_FACTOR_AVOID_INTERRUPT pref("javascript.options.mem.gc_allocation_threshold_factor_avoid_interrupt", 90); // JSGC_MIN_EMPTY_CHUNK_COUNT pref("javascript.options.mem.gc_min_empty_chunk_count", 1); // JSGC_MAX_EMPTY_CHUNK_COUNT pref("javascript.options.mem.gc_max_empty_chunk_count", 30); pref("javascript.options.showInConsole", false); pref("javascript.options.shared_memory", true); pref("javascript.options.throw_on_debuggee_would_run", false); pref("javascript.options.dump_stack_on_debuggee_would_run", false); // Streams API pref("javascript.options.streams", false); // advanced prefs pref("advanced.mailftp", false); pref("image.animation_mode", "normal"); // Same-origin policy for file URIs, "false" is traditional pref("security.fileuri.strict_origin_policy", true); // If this pref is true, prefs in the logging.config branch will be cleared on // startup. This is done so that setting a log-file and log-modules at runtime // doesn't persist across restarts leading to huge logfile and low disk space. pref("logging.config.clear_on_startup", true); // If there is ever a security firedrill that requires // us to block certian ports global, this is the pref // to use. Is is a comma delimited list of port numbers // for example: // pref("network.security.ports.banned", "1,2,3,4,5"); // prevents necko connecting to ports 1-5 unless the protocol // overrides. // Allow necko to do A/B testing. Will generally only happen if // telemetry is also enabled as otherwise there is no way to report // the results pref("network.allow-experiments", true); // Allow the network changed event to get sent when a network topology or // setup change is noticed while running. pref("network.notify.changed", true); // Allow network detection of IPv6 related changes (bug 1245059) #if defined(XP_WIN) pref("network.notify.IPv6", false); #else pref("network.notify.IPv6", true); #endif // Transmit UDP busy-work to the LAN when anticipating low latency // network reads and on wifi to mitigate 802.11 Power Save Polling delays pref("network.tickle-wifi.enabled", false); pref("network.tickle-wifi.duration", 400); pref("network.tickle-wifi.delay", 16); // Turn off interprocess security checks. Needed to run xpcshell tests. pref("network.disable.ipc.security", false); // Default action for unlisted external protocol handlers pref("network.protocol-handler.external-default", true); // OK to load pref("network.protocol-handler.warn-external-default", true); // warn before load // Prevent using external protocol handlers for these schemes pref("network.protocol-handler.external.hcp", false); pref("network.protocol-handler.external.vbscript", false); pref("network.protocol-handler.external.javascript", false); pref("network.protocol-handler.external.data", false); pref("network.protocol-handler.external.ms-help", false); pref("network.protocol-handler.external.shell", false); pref("network.protocol-handler.external.vnd.ms.radio", false); #ifdef XP_MACOSX pref("network.protocol-handler.external.help", false); #endif pref("network.protocol-handler.external.disk", false); pref("network.protocol-handler.external.disks", false); pref("network.protocol-handler.external.afp", false); pref("network.protocol-handler.external.moz-icon", false); // Don't allow external protocol handlers for common typos pref("network.protocol-handler.external.ttp", false); // http pref("network.protocol-handler.external.ttps", false); // https pref("network.protocol-handler.external.tps", false); // https pref("network.protocol-handler.external.ps", false); // https pref("network.protocol-handler.external.ile", false); // file pref("network.protocol-handler.external.le", false); // file // An exposed protocol handler is one that can be used in all contexts. A // non-exposed protocol handler is one that can only be used internally by the // application. For example, a non-exposed protocol would not be loaded by the // application in response to a link click or a X-remote openURL command. // Instead, it would be deferred to the system's external protocol handler. // Only internal/built-in protocol handlers can be marked as exposed. // This pref controls the default settings. Per protocol settings can be used // to override this value. pref("network.protocol-handler.expose-all", true); // Warning for about:networking page pref("network.warnOnAboutNetworking", true); // Example: make IMAP an exposed protocol // pref("network.protocol-handler.expose.imap", true); // Whether IOService.connectivity and NS_IsOffline depends on connectivity status pref("network.manage-offline-status", true); // If set to true, IOService.offline depends on IOService.connectivity pref("network.offline-mirrors-connectivity", false); // pref("network.http.version", "1.1"); // default // pref("network.http.version", "1.0"); // uncomment this out in case of problems // pref("network.http.version", "0.9"); // it'll work too if you're crazy // keep-alive option is effectively obsolete. Nevertheless it'll work with // some older 1.0 servers: pref("network.http.proxy.version", "1.1"); // default // pref("network.http.proxy.version", "1.0"); // uncomment this out in case of problems // (required if using junkbuster proxy) // this preference can be set to override the socket type used for normal // HTTP traffic. an empty value indicates the normal TCP/IP socket type. pref("network.http.default-socket-type", ""); // There is a problem with some IIS7 servers that don't close the connection // properly after it times out (bug #491541). Default timeout on IIS7 is // 120 seconds. We need to reuse or drop the connection within this time. // We set the timeout a little shorter to keep a reserve for cases when // the packet is lost or delayed on the route. pref("network.http.keep-alive.timeout", 115); // Timeout connections if an initial response is not received after 5 mins. pref("network.http.response.timeout", 300); // Limit the absolute number of http connections. // Note: the socket transport service will clamp the number below this if the OS // cannot allocate that many FDs #ifdef ANDROID pref("network.http.max-connections", 256); #else pref("network.http.max-connections", 900); #endif // If NOT connecting via a proxy, then // a new connection will only be attempted if the number of active persistent // connections to the server is less then max-persistent-connections-per-server. pref("network.http.max-persistent-connections-per-server", 6); // Number of connections that we can open beyond the standard parallelism limit defined // by max-persistent-connections-per-server/-proxy to handle urgent-start marked requests pref("network.http.max-urgent-start-excessive-connections-per-host", 3); // If connecting via a proxy, then a // new connection will only be attempted if the number of active persistent // connections to the proxy is less then max-persistent-connections-per-proxy. pref("network.http.max-persistent-connections-per-proxy", 32); // amount of time (in seconds) to suspend pending requests, before spawning a // new connection, once the limit on the number of persistent connections per // host has been reached. however, a new connection will not be created if // max-connections or max-connections-per-server has also been reached. pref("network.http.request.max-start-delay", 10); // If a connection is reset, we will retry it max-attempts times. pref("network.http.request.max-attempts", 10); // Headers pref("network.http.accept.default", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); // Prefs allowing granular control of referers // 0=don't send any, 1=send only on clicks, 2=send on image requests as well pref("network.http.sendRefererHeader", 2); // Set the default Referrer Policy to be used unless overriden by the site // 0=no-referrer, 1=same-origin, 2=strict-origin-when-cross-origin, // 3=no-referrer-when-downgrade pref("network.http.referer.userControlPolicy", 3); // false=real referer, true=spoof referer (use target URI as referer) pref("network.http.referer.spoofSource", false); // false=allow onion referer, true=hide onion referer (use empty referer) pref("network.http.referer.hideOnionSource", false); // 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port pref("network.http.referer.trimmingPolicy", 0); // 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port pref("network.http.referer.XOriginTrimmingPolicy", 0); // 0=always send, 1=send iff base domains match, 2=send iff hosts match pref("network.http.referer.XOriginPolicy", 0); // Maximum number of consecutive redirects before aborting. pref("network.http.redirection-limit", 20); // Enable http compression: comment this out in case of problems with 1.1 // NOTE: support for "compress" has been disabled per bug 196406. // NOTE: separate values with comma+space (", "): see bug 576033 pref("network.http.accept-encoding", "gzip, deflate"); pref("network.http.accept-encoding.secure", "gzip, deflate, br"); // Prompt for redirects resulting in unsafe HTTP requests pref("network.http.prompt-temp-redirect", false); // If true generate CORRUPTED_CONTENT errors for entities that // contain an invalid Assoc-Req response header pref("network.http.assoc-req.enforce", false); // On networks deploying QoS, it is recommended that these be lockpref()'d, // since inappropriate marking can easily overwhelm bandwidth reservations // for certain services (i.e. EF for VoIP, AF4x for interactive video, // AF3x for broadcast/streaming video, etc) // default value for HTTP // in a DSCP environment this should be 40 (0x28, or AF11), per RFC-4594, // Section 4.8 "High-Throughput Data Service Class" pref("network.http.qos", 0); // The number of milliseconds after sending a SYN for an HTTP connection, // to wait before trying a different connection. 0 means do not use a second // connection. pref("network.http.connection-retry-timeout", 250); // The number of seconds after sending initial SYN for an HTTP connection // to give up if the OS does not give up first pref("network.http.connection-timeout", 90); // The number of seconds to allow active connections to prove that they have // traffic before considered stalled, after a network change has been detected // and signalled. pref("network.http.network-changed.timeout", 5); // The maximum number of current global half open sockets allowable // when starting a new speculative connection. pref("network.http.speculative-parallel-limit", 6); // Whether or not to block requests for non head js/css items (e.g. media) // while those elements load. pref("network.http.rendering-critical-requests-prioritization", true); // Disable IPv6 for backup connections to workaround problems about broken // IPv6 connectivity. pref("network.http.fast-fallback-to-IPv4", true); // Try and use SPDY when using SSL pref("network.http.spdy.enabled", true); pref("network.http.spdy.enabled.http2", true); pref("network.http.spdy.enabled.deps", true); pref("network.http.spdy.enforce-tls-profile", true); pref("network.http.spdy.chunk-size", 16000); pref("network.http.spdy.timeout", 170); pref("network.http.spdy.coalesce-hostnames", true); pref("network.http.spdy.persistent-settings", false); pref("network.http.spdy.ping-threshold", 58); pref("network.http.spdy.ping-timeout", 8); pref("network.http.spdy.send-buffer-size", 131072); pref("network.http.spdy.allow-push", true); pref("network.http.spdy.push-allowance", 131072); // 128KB pref("network.http.spdy.pull-allowance", 12582912); // 12MB pref("network.http.spdy.default-concurrent", 100); pref("network.http.spdy.default-hpack-buffer", 65536); // 64k // alt-svc allows separation of transport routing from // the origin host without using a proxy. pref("network.http.altsvc.enabled", true); pref("network.http.altsvc.oe", true); // Turn on 0RTT data for TLS 1.3 pref("security.tls.enable_0rtt_data", true); // the origin extension impacts h2 coalescing pref("network.http.originextension", true); pref("network.http.diagnostics", false); pref("network.http.pacing.requests.enabled", true); pref("network.http.pacing.requests.min-parallelism", 6); pref("network.http.pacing.requests.hz", 80); pref("network.http.pacing.requests.burst", 10); // TCP Keepalive config for HTTP connections. pref("network.http.tcp_keepalive.short_lived_connections", true); // Max time from initial request during which conns are considered short-lived. pref("network.http.tcp_keepalive.short_lived_time", 60); // Idle time of TCP connection until first keepalive probe sent. pref("network.http.tcp_keepalive.short_lived_idle_time", 10); pref("network.http.tcp_keepalive.long_lived_connections", true); pref("network.http.tcp_keepalive.long_lived_idle_time", 600); pref("network.http.enforce-framing.http1", false); // should be named "strict" pref("network.http.enforce-framing.soft", true); // Max size, in bytes, for received HTTP response header. pref("network.http.max_response_header_size", 393216); // If we should attempt to race the cache and network pref("network.http.rcwn.enabled", false); pref("network.http.rcwn.cache_queue_normal_threshold", 8); pref("network.http.rcwn.cache_queue_priority_threshold", 2); // We might attempt to race the cache with the network only if a resource // is smaller than this size. pref("network.http.rcwn.small_resource_size_kb", 256); pref("network.http.rcwn.min_wait_before_racing_ms", 0); pref("network.http.rcwn.max_wait_before_racing_ms", 500); // The ratio of the transaction count for the focused window and the count of // all available active connections. pref("network.http.focused_window_transaction_ratio", "0.9"); // Whether or not we give more priority to active tab. // Note that this requires restart for changes to take effect. pref("network.http.active_tab_priority", true); // default values for FTP // in a DSCP environment this should be 40 (0x28, or AF11), per RFC-4594, // Section 4.8 "High-Throughput Data Service Class", and 80 (0x50, or AF22) // per Section 4.7 "Low-Latency Data Service Class". pref("network.ftp.data.qos", 0); pref("network.ftp.control.qos", 0); // The max time to spend on xpcom events between two polls in ms. pref("network.sts.max_time_for_events_between_two_polls", 100); // During shutdown we limit PR_Close calls. If time exceeds this pref (in ms) // let sockets just leak. pref("network.sts.max_time_for_pr_close_during_shutdown", 5000); // // 2147483647 == PR_INT32_MAX == ~2 GB pref("network.websocket.max-message-size", 2147483647); // Should we automatically follow http 3xx redirects during handshake pref("network.websocket.auto-follow-http-redirects", false); // the number of seconds to wait for websocket connection to be opened pref("network.websocket.timeout.open", 20); // the number of seconds to wait for a clean close after sending the client // close message pref("network.websocket.timeout.close", 20); // the number of seconds of idle read activity to sustain before sending a // ping probe. 0 to disable. pref("network.websocket.timeout.ping.request", 0); // the deadline, expressed in seconds, for some read activity to occur after // generating a ping. If no activity happens then an error and unclean close // event is sent to the javascript websockets application pref("network.websocket.timeout.ping.response", 10); // Defines whether or not to try to negotiate the permessage compression // extension with the websocket server. pref("network.websocket.extensions.permessage-deflate", true); // the maximum number of concurrent websocket sessions. By specification there // is never more than one handshake oustanding to an individual host at // one time. pref("network.websocket.max-connections", 200); // by default scripts loaded from a https:// origin can only open secure // (i.e. wss://) websockets. pref("network.websocket.allowInsecureFromHTTPS", false); // by default we delay websocket reconnects to same host/port if previous // connection failed, per RFC 6455 section 7.2.3 pref("network.websocket.delay-failed-reconnects", true); // // Server-Sent Events // Equal to the DEFAULT_RECONNECTION_TIME_VALUE value in nsEventSource.cpp pref("dom.server-events.default-reconnection-time", 5000); // in milliseconds // If false, remote JAR files that are served with a content type other than // application/java-archive or application/x-jar will not be opened // by the jar channel. pref("network.jar.open-unsafe-types", false); // If true, loading remote JAR files using the jar: protocol will be prevented. pref("network.jar.block-remote-files", true); // This preference, if true, causes all UTF-8 domain names to be normalized to // punycode. The intention is to allow UTF-8 domain names as input, but never // generate them from punycode. pref("network.IDN_show_punycode", false); // If "network.IDN.use_whitelist" is set to true, TLDs with // "network.IDN.whitelist.tld" explicitly set to true are treated as // IDN-safe. Otherwise, they're treated as unsafe and punycode will be used // for displaying them in the UI (e.g. URL bar), unless they conform to one of // the profiles specified in // https://www.unicode.org/reports/tr39/#Restriction_Level_Detection // If "network.IDN.restriction_profile" is "high", the Highly Restrictive // profile is used. // If "network.IDN.restriction_profile" is "moderate", the Moderately // Restrictive profile is used. // In all other cases, the ASCII-Only profile is used. // Note that these preferences are referred to ONLY when // "network.IDN_show_punycode" is false. In other words, all IDNs will be shown // in punycode if "network.IDN_show_punycode" is true. pref("network.IDN.restriction_profile", "high"); pref("network.IDN.use_whitelist", false); // ccTLDs pref("network.IDN.whitelist.ac", true); pref("network.IDN.whitelist.ar", true); pref("network.IDN.whitelist.at", true); pref("network.IDN.whitelist.br", true); pref("network.IDN.whitelist.ca", true); pref("network.IDN.whitelist.ch", true); pref("network.IDN.whitelist.cl", true); pref("network.IDN.whitelist.cn", true); pref("network.IDN.whitelist.de", true); pref("network.IDN.whitelist.dk", true); pref("network.IDN.whitelist.ee", true); pref("network.IDN.whitelist.es", true); pref("network.IDN.whitelist.fi", true); pref("network.IDN.whitelist.fr", true); pref("network.IDN.whitelist.gr", true); pref("network.IDN.whitelist.gt", true); pref("network.IDN.whitelist.hu", true); pref("network.IDN.whitelist.il", true); pref("network.IDN.whitelist.io", true); pref("network.IDN.whitelist.ir", true); pref("network.IDN.whitelist.is", true); pref("network.IDN.whitelist.jp", true); pref("network.IDN.whitelist.kr", true); pref("network.IDN.whitelist.li", true); pref("network.IDN.whitelist.lt", true); pref("network.IDN.whitelist.lu", true); pref("network.IDN.whitelist.lv", true); pref("network.IDN.whitelist.no", true); pref("network.IDN.whitelist.nu", true); pref("network.IDN.whitelist.nz", true); pref("network.IDN.whitelist.pl", true); pref("network.IDN.whitelist.pm", true); pref("network.IDN.whitelist.pr", true); pref("network.IDN.whitelist.re", true); pref("network.IDN.whitelist.se", true); pref("network.IDN.whitelist.sh", true); pref("network.IDN.whitelist.si", true); pref("network.IDN.whitelist.tf", true); pref("network.IDN.whitelist.th", true); pref("network.IDN.whitelist.tm", true); pref("network.IDN.whitelist.tw", true); pref("network.IDN.whitelist.ua", true); pref("network.IDN.whitelist.vn", true); pref("network.IDN.whitelist.wf", true); pref("network.IDN.whitelist.yt", true); // IDN ccTLDs // ae, UAE, . pref("network.IDN.whitelist.xn--mgbaam7a8h", true); // cn, China, . with variants pref("network.IDN.whitelist.xn--fiqz9s", true); // Traditional pref("network.IDN.whitelist.xn--fiqs8s", true); // Simplified // eg, Egypt, . pref("network.IDN.whitelist.xn--wgbh1c", true); // hk, Hong Kong, . pref("network.IDN.whitelist.xn--j6w193g", true); // ir, Iran, <.Iran> with variants pref("network.IDN.whitelist.xn--mgba3a4f16a", true); pref("network.IDN.whitelist.xn--mgba3a4fra", true); // jo, Jordan, . pref("network.IDN.whitelist.xn--mgbayh7gpa", true); // lk, Sri Lanka, . and . pref("network.IDN.whitelist.xn--fzc2c9e2c", true); pref("network.IDN.whitelist.xn--xkc2al3hye2a", true); // qa, Qatar, . pref("network.IDN.whitelist.xn--wgbl6a", true); // rs, Serbia, . pref("network.IDN.whitelist.xn--90a3ac", true); // ru, Russian Federation, . pref("network.IDN.whitelist.xn--p1ai", true); // sa, Saudi Arabia, . with variants pref("network.IDN.whitelist.xn--mgberp4a5d4ar", true); pref("network.IDN.whitelist.xn--mgberp4a5d4a87g", true); pref("network.IDN.whitelist.xn--mgbqly7c0a67fbc", true); pref("network.IDN.whitelist.xn--mgbqly7cvafr", true); // sy, Syria, . pref("network.IDN.whitelist.xn--ogbpf8fl", true); // th, Thailand, . pref("network.IDN.whitelist.xn--o3cw4h", true); // tw, Taiwan, <.Taiwan> with variants pref("network.IDN.whitelist.xn--kpry57d", true); // Traditional pref("network.IDN.whitelist.xn--kprw13d", true); // Simplified // gTLDs pref("network.IDN.whitelist.asia", true); pref("network.IDN.whitelist.biz", true); pref("network.IDN.whitelist.cat", true); pref("network.IDN.whitelist.info", true); pref("network.IDN.whitelist.museum", true); pref("network.IDN.whitelist.org", true); pref("network.IDN.whitelist.tel", true); // NOTE: Before these can be removed, one of bug 414812's tests must be updated // or it will likely fail! Please CC jwalden+bmo on the bug associated // with removing these so he can provide a patch to make the necessary // changes to avoid bustage. // ".test" localised TLDs for ICANN's top-level IDN trial pref("network.IDN.whitelist.xn--0zwm56d", true); pref("network.IDN.whitelist.xn--11b5bs3a9aj6g", true); pref("network.IDN.whitelist.xn--80akhbyknj4f", true); pref("network.IDN.whitelist.xn--9t4b11yi5a", true); pref("network.IDN.whitelist.xn--deba0ad", true); pref("network.IDN.whitelist.xn--g6w251d", true); pref("network.IDN.whitelist.xn--hgbk6aj7f53bba", true); pref("network.IDN.whitelist.xn--hlcj6aya9esc7a", true); pref("network.IDN.whitelist.xn--jxalpdlp", true); pref("network.IDN.whitelist.xn--kgbechtv", true); pref("network.IDN.whitelist.xn--zckzah", true); // If a domain includes any of the following characters, it may be a spoof // attempt and so we always display the domain name as punycode. This would // override the settings "network.IDN_show_punycode" and // "network.IDN.whitelist.*". (please keep this value in sync with the // built-in fallback in intl/uconv/nsTextToSubURI.cpp) pref("network.IDN.blacklist_chars", "\u0020\u00A0\u00BC\u00BD\u00BE\u01C3\u02D0\u0337\u0338\u0589\u058A\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\u200E\u200F\u2010\u2019\u2024\u2027\u2028\u2029\u202A\u202B\u202C\u202D\u202E\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\u30A0\u3164\u321D\u321E\u33AE\u33AF\u33C6\u33DF\uA789\uFE14\uFE15\uFE3F\uFE5D\uFE5E\uFEFF\uFF0E\uFF0F\uFF61\uFFA0\uFFF9\uFFFA\uFFFB\uFFFC\uFFFD"); // This preference specifies a list of domains for which DNS lookups will be // IPv4 only. Works around broken DNS servers which can't handle IPv6 lookups // and/or allows the user to disable IPv6 on a per-domain basis. See bug 68796. pref("network.dns.ipv4OnlyDomains", ""); // This preference can be used to turn off IPv6 name lookups. See bug 68796. pref("network.dns.disableIPv6", false); // This is the number of dns cache entries allowed pref("network.dnsCacheEntries", 400); // In the absence of OS TTLs, the DNS cache TTL value pref("network.dnsCacheExpiration", 60); // Get TTL; not supported on all platforms; nop on the unsupported ones. pref("network.dns.get-ttl", true); // The grace period allows the DNS cache to use expired entries, while kicking off // a revalidation in the background. pref("network.dnsCacheExpirationGracePeriod", 60); // This preference can be used to turn off DNS prefetch. pref("network.dns.disablePrefetch", false); // This preference controls whether .onion hostnames are // rejected before being given to DNS. RFC 7686 pref("network.dns.blockDotOnion", true); // These domains are treated as localhost equivalent pref("network.dns.localDomains", ""); // When non empty all non-localhost DNS queries (including IP addresses) // resolve to this value. The value can be a name or an IP address. // domains mapped to localhost with localDomains stay localhost. pref("network.dns.forceResolve", ""); // Contols whether or not "localhost" should resolve when offline pref("network.dns.offline-localhost", true); // The maximum allowed length for a URL - 1MB default pref("network.standard-url.max-length", 1048576); // The preference controls if the rust URL parser is run in parallel with the // C++ implementation. Requires restart for changes to take effect. pref("network.standard-url.enable-rust", false); // Whether nsIURI.host/.hostname/.spec should return a punycode string // If set to false we will revert to previous behaviour and return a unicode string. pref("network.standard-url.punycode-host", true); // Idle timeout for ftp control connections - 5 minute default pref("network.ftp.idleConnectionTimeout", 300); // directory listing format // 2: HTML // 3: XUL directory viewer // all other values are treated like 2 pref("network.dir.format", 2); // enables the prefetch service (i.e., prefetching of and // URLs). pref("network.prefetch-next", true); // enables the preloading (i.e., preloading of URLs). pref("network.preload", false); // enables the predictive service pref("network.predictor.enabled", true); pref("network.predictor.enable-hover-on-ssl", false); pref("network.predictor.enable-prefetch", false); pref("network.predictor.page-degradation.day", 0); pref("network.predictor.page-degradation.week", 5); pref("network.predictor.page-degradation.month", 10); pref("network.predictor.page-degradation.year", 25); pref("network.predictor.page-degradation.max", 50); pref("network.predictor.subresource-degradation.day", 1); pref("network.predictor.subresource-degradation.week", 10); pref("network.predictor.subresource-degradation.month", 25); pref("network.predictor.subresource-degradation.year", 50); pref("network.predictor.subresource-degradation.max", 100); pref("network.predictor.prefetch-rolling-load-count", 10); pref("network.predictor.prefetch-min-confidence", 100); pref("network.predictor.preconnect-min-confidence", 90); pref("network.predictor.preresolve-min-confidence", 60); pref("network.predictor.redirect-likely-confidence", 75); pref("network.predictor.prefetch-force-valid-for", 10); pref("network.predictor.max-resources-per-entry", 100); pref("network.predictor.max-uri-length", 500); pref("network.predictor.cleaned-up", false); // The following prefs pertain to the negotiate-auth extension (see bug 17578), // which provides transparent Kerberos or NTLM authentication using the SPNEGO // protocol. Each pref is a comma-separated list of keys, where each key has // the format: // [scheme "://"] [host [":" port]] // For example, "foo.com" would match "http://www.foo.com/bar", etc. // Force less-secure NTLMv1 when needed (NTLMv2 is the default). pref("network.auth.force-generic-ntlm-v1", false); // This list controls which URIs can use the negotiate-auth protocol. This // list should be limited to the servers you know you'll need to login to. pref("network.negotiate-auth.trusted-uris", ""); // This list controls which URIs can support delegation. pref("network.negotiate-auth.delegation-uris", ""); // Do not allow SPNEGO by default when challenged by a local server. pref("network.negotiate-auth.allow-non-fqdn", false); // Allow SPNEGO by default when challenged by a proxy server. pref("network.negotiate-auth.allow-proxies", true); // Path to a specific gssapi library pref("network.negotiate-auth.gsslib", ""); // Specify if the gss lib comes standard with the OS pref("network.negotiate-auth.using-native-gsslib", true); #ifdef XP_WIN // Default to using the SSPI intead of GSSAPI on windows pref("network.auth.use-sspi", true); #endif // Controls which NTLM authentication implementation we default to. True forces // the use of our generic (internal) NTLM authentication implementation vs. any // native implementation provided by the os. This pref is for diagnosing issues // with native NTLM. (See bug 520607 for details.) Using generic NTLM authentication // can expose the user to reflection attack vulnerabilities. Do not change this // unless you know what you're doing! // This pref should be removed 6 months after the release of firefox 3.6. pref("network.auth.force-generic-ntlm", false); // The following prefs are used to enable automatic use of the operating // system's NTLM implementation to silently authenticate the user with their // Window's domain logon. The trusted-uris pref follows the format of the // trusted-uris pref for negotiate authentication. pref("network.automatic-ntlm-auth.allow-proxies", true); pref("network.automatic-ntlm-auth.allow-non-fqdn", false); pref("network.automatic-ntlm-auth.trusted-uris", ""); // The string to return to the server as the 'workstation' that the // user is using. Bug 1046421 notes that the previous default, of the // system hostname, could be used for user fingerprinting. // // However, in some network environments where allowedWorkstations is in use // to provide a level of host-based access control, it must be set to a string // that is listed in allowedWorkstations for the user's account in their // AD Domain. pref("network.generic-ntlm-auth.workstation", "WORKSTATION"); // Sub-resources HTTP-authentication: // 0 - don't allow sub-resources to open HTTP authentication credentials // dialogs // 1 - allow sub-resources to open HTTP authentication credentials dialogs, // but don't allow it for cross-origin sub-resources // 2 - allow the cross-origin authentication as well. pref("network.auth.subresource-http-auth-allow", 2); // Sub-resources HTTP-authentication for cross-origin images: // true - it is allowed to present http auth. dialog for cross-origin images. // false - it is not allowed. // If network.auth.subresource-http-auth-allow has values 0 or 1 this pref does not // have any effect. pref("network.auth.subresource-img-cross-origin-http-auth-allow", true); // This preference controls whether to allow sending default credentials (SSO) to // NTLM/Negotiate servers allowed in the "trusted uri" list when navigating them // in a Private Browsing window. // If set to false, Private Browsing windows will not use default credentials and ask // for credentials from the user explicitly. // If set to true, and a server URL conforms other conditions for sending default // credentials, those will be sent automatically in Private Browsing windows. // // This preference has no effect when the browser is set to "Never Remember History", // in that case default credentials will always be used. pref("network.auth.private-browsing-sso", false); // Control how throttling of http responses works - number of ms that each // suspend and resume period lasts (prefs named appropriately) pref("network.http.throttle.enable", true); pref("network.http.throttle.suspend-for", 900); pref("network.http.throttle.resume-for", 100); // Delay we resume throttled background responses after the last unthrottled // response has finished. Prevents resuming too soon during an active page load // at which sub-resource reqeusts quickly come and go. pref("network.http.throttle.resume-background-in", 1000); // After the last transaction activation or last data chunk response we only // throttle for this period of time. This prevents comet and unresponsive // http requests to engage long-standing throttling. pref("network.http.throttle.time-window", 3000); // Give higher priority to requests resulting from a user interaction event // like click-to-play, image fancy-box zoom, navigation. pref("network.http.on_click_priority", true); // Some requests during a page load are marked as "tail", mainly trackers, but not only. // This pref controls whether such requests are put to the tail, behind other requests // emerging during page loading process. pref("network.http.tailing.enabled", true); // When the page load has not yet reached DOMContentLoaded point, tail requestes are delayed // by (non-tailed requests count + 1) * delay-quantum milliseconds. pref("network.http.tailing.delay-quantum", 600); // The same as above, but applied after the document load reached DOMContentLoaded event. pref("network.http.tailing.delay-quantum-after-domcontentloaded", 100); // Upper limit for the calculated delay, prevents long standing and comet-like requests // tail forever. This is in milliseconds as well. pref("network.http.tailing.delay-max", 6000); pref("permissions.default.image", 1); // 1-Accept, 2-Deny, 3-dontAcceptForeign pref("network.proxy.type", 5); pref("network.proxy.ftp", ""); pref("network.proxy.ftp_port", 0); pref("network.proxy.http", ""); pref("network.proxy.http_port", 0); pref("network.proxy.ssl", ""); pref("network.proxy.ssl_port", 0); pref("network.proxy.socks", ""); pref("network.proxy.socks_port", 0); pref("network.proxy.socks_version", 5); pref("network.proxy.socks_remote_dns", false); pref("network.proxy.proxy_over_tls", true); pref("network.proxy.no_proxies_on", "localhost, 127.0.0.1"); pref("network.proxy.failover_timeout", 1800); // 30 minutes pref("network.online", true); //online/offline pref("network.cookie.cookieBehavior", 0); // 0-Accept, 1-dontAcceptForeign, 2-dontAcceptAny, 3-limitForeign #ifdef ANDROID pref("network.cookie.cookieBehavior", 0); // Keep the old default of accepting all cookies #endif pref("network.cookie.thirdparty.sessionOnly", false); pref("network.cookie.leave-secure-alone", true); pref("network.cookie.ipc.sync", false); pref("network.cookie.lifetimePolicy", 0); // 0-accept, 1-dontUse 2-acceptForSession, 3-acceptForNDays pref("network.cookie.prefsMigrated", false); pref("network.cookie.lifetime.days", 90); // Ignored unless network.cookie.lifetimePolicy is 3. // The PAC file to load. Ignored unless network.proxy.type is 2. pref("network.proxy.autoconfig_url", ""); // Strip off paths when sending URLs to PAC scripts pref("network.proxy.autoconfig_url.include_path", false); // If we cannot load the PAC file, then try again (doubling from interval_min // until we reach interval_max or the PAC file is successfully loaded). pref("network.proxy.autoconfig_retry_interval_min", 5); // 5 seconds pref("network.proxy.autoconfig_retry_interval_max", 300); // 5 minutes // Use the HSTS preload list by default pref("network.stricttransportsecurity.preloadlist", true); // Use JS mDNS as a fallback pref("network.mdns.use_js_fallback", false); pref("converter.html2txt.structs", true); // Output structured phrases (strong, em, code, sub, sup, b, i, u) pref("converter.html2txt.header_strategy", 1); // 0 = no indention; 1 = indention, increased with header level; 2 = numbering and slight indention // Whether we include ruby annotation in the text despite whether it // is requested. This was true because we didn't explicitly strip out // annotations. Set false by default to provide a better behavior, but // we want to be able to pref-off it if user doesn't like it. pref("converter.html2txt.always_include_ruby", false); pref("intl.accept_languages", "chrome://global/locale/intl.properties"); pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties"); pref("intl.menuitems.insertseparatorbeforeaccesskeys","chrome://global/locale/intl.properties"); pref("intl.charset.detector", "chrome://global/locale/intl.properties"); pref("intl.charset.fallback.override", ""); pref("intl.charset.fallback.tld", true); pref("intl.ellipsis", "chrome://global-platform/locale/intl.properties"); pref("intl.locale.matchOS", false); // this pref allows user to request that all internationalization formatters // like date/time formatting, unit formatting, calendars etc. should use // OS locale set instead of the app locale set. pref("intl.regional_prefs.use_os_locales", false); // fallback charset list for Unicode conversion (converting from Unicode) // currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes) // for ISO-8859-1 pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252"); pref("font.language.group", "chrome://global/locale/intl.properties"); // Android-specific pref to use key-events-only mode for IME-unaware webapps. #ifdef MOZ_WIDGET_ANDROID pref("intl.ime.hack.on_ime_unaware_apps.fire_key_events_for_composition", true); #else pref("intl.ime.hack.on_ime_unaware_apps.fire_key_events_for_composition", false); #endif // If you use legacy Chinese IME which puts an ideographic space to composition // string as placeholder, this pref might be useful. If this is true and when // web contents forcibly commits composition (e.g., moving focus), the // ideographic space will be ignored (i.e., commits with empty string). pref("intl.ime.remove_placeholder_character_at_commit", false); #ifdef ENABLE_INTL_API pref("intl.uidirection", -1); // -1 to set from locale; 0 for LTR; 1 for RTL #else // these locales have right-to-left UI pref("intl.uidirection.ar", "rtl"); pref("intl.uidirection.he", "rtl"); pref("intl.uidirection.fa", "rtl"); pref("intl.uidirection.ug", "rtl"); pref("intl.uidirection.ur", "rtl"); #endif // use en-US hyphenation by default for content tagged with plain lang="en" pref("intl.hyphenation-alias.en", "en-us"); // and for other subtags of en-*, if no specific patterns are available pref("intl.hyphenation-alias.en-*", "en-us"); pref("intl.hyphenation-alias.af-*", "af"); pref("intl.hyphenation-alias.bg-*", "bg"); pref("intl.hyphenation-alias.ca-*", "ca"); pref("intl.hyphenation-alias.cy-*", "cy"); pref("intl.hyphenation-alias.da-*", "da"); pref("intl.hyphenation-alias.eo-*", "eo"); pref("intl.hyphenation-alias.es-*", "es"); pref("intl.hyphenation-alias.et-*", "et"); pref("intl.hyphenation-alias.fi-*", "fi"); pref("intl.hyphenation-alias.fr-*", "fr"); pref("intl.hyphenation-alias.gl-*", "gl"); pref("intl.hyphenation-alias.hr-*", "hr"); pref("intl.hyphenation-alias.hsb-*", "hsb"); pref("intl.hyphenation-alias.hu-*", "hu"); pref("intl.hyphenation-alias.ia-*", "ia"); pref("intl.hyphenation-alias.is-*", "is"); pref("intl.hyphenation-alias.it-*", "it"); pref("intl.hyphenation-alias.kmr-*", "kmr"); pref("intl.hyphenation-alias.la-*", "la"); pref("intl.hyphenation-alias.lt-*", "lt"); pref("intl.hyphenation-alias.mn-*", "mn"); pref("intl.hyphenation-alias.nl-*", "nl"); pref("intl.hyphenation-alias.pl-*", "pl"); pref("intl.hyphenation-alias.pt-*", "pt"); pref("intl.hyphenation-alias.ru-*", "ru"); pref("intl.hyphenation-alias.sl-*", "sl"); pref("intl.hyphenation-alias.sv-*", "sv"); pref("intl.hyphenation-alias.tr-*", "tr"); pref("intl.hyphenation-alias.uk-*", "uk"); // use reformed (1996) German patterns by default unless specifically tagged as de-1901 // (these prefs may soon be obsoleted by better BCP47-based tag matching, but for now...) pref("intl.hyphenation-alias.de", "de-1996"); pref("intl.hyphenation-alias.de-*", "de-1996"); pref("intl.hyphenation-alias.de-AT-1901", "de-1901"); pref("intl.hyphenation-alias.de-DE-1901", "de-1901"); pref("intl.hyphenation-alias.de-CH-*", "de-CH"); // patterns from TeX are tagged as "sh" (Serbo-Croatian) macrolanguage; // alias "sr" (Serbian) and "bs" (Bosnian) to those patterns // (Croatian has its own separate patterns). pref("intl.hyphenation-alias.sr", "sh"); pref("intl.hyphenation-alias.bs", "sh"); pref("intl.hyphenation-alias.sh-*", "sh"); pref("intl.hyphenation-alias.sr-*", "sh"); pref("intl.hyphenation-alias.bs-*", "sh"); // Norwegian has two forms, Bokmål and Nynorsk, with "no" as a macrolanguage encompassing both. // For "no", we'll alias to "nb" (Bokmål) as that is the more widely used written form. pref("intl.hyphenation-alias.no", "nb"); pref("intl.hyphenation-alias.no-*", "nb"); pref("intl.hyphenation-alias.nb-*", "nb"); pref("intl.hyphenation-alias.nn-*", "nn"); // All prefs of default font should be "auto". pref("font.name.serif.ar", "");; pref("font.name.sans-serif.ar", ""); pref("font.name.monospace.ar", ""); pref("font.name.cursive.ar", ""); pref("font.name.serif.el", ""); pref("font.name.sans-serif.el", ""); pref("font.name.monospace.el", ""); pref("font.name.cursive.el", ""); pref("font.name.serif.he", ""); pref("font.name.sans-serif.he", ""); pref("font.name.monospace.he", ""); pref("font.name.cursive.he", ""); pref("font.name.serif.ja", ""); pref("font.name.sans-serif.ja", ""); pref("font.name.monospace.ja", ""); pref("font.name.cursive.ja", ""); pref("font.name.serif.ko", ""); pref("font.name.sans-serif.ko", ""); pref("font.name.monospace.ko", ""); pref("font.name.cursive.ko", ""); pref("font.name.serif.th", ""); pref("font.name.sans-serif.th", ""); pref("font.name.monospace.th", ""); pref("font.name.cursive.th", ""); pref("font.name.serif.x-cyrillic", ""); pref("font.name.sans-serif.x-cyrillic", ""); pref("font.name.monospace.x-cyrillic", ""); pref("font.name.cursive.x-cyrillic", ""); pref("font.name.serif.x-unicode", ""); pref("font.name.sans-serif.x-unicode", ""); pref("font.name.monospace.x-unicode", ""); pref("font.name.cursive.x-unicode", ""); pref("font.name.serif.x-western", ""); pref("font.name.sans-serif.x-western", ""); pref("font.name.monospace.x-western", ""); pref("font.name.cursive.x-western", ""); pref("font.name.serif.zh-CN", ""); pref("font.name.sans-serif.zh-CN", ""); pref("font.name.monospace.zh-CN", ""); pref("font.name.cursive.zh-CN", ""); pref("font.name.serif.zh-TW", ""); pref("font.name.sans-serif.zh-TW", ""); pref("font.name.monospace.zh-TW", ""); pref("font.name.cursive.zh-TW", ""); pref("font.name.serif.zh-HK", ""); pref("font.name.sans-serif.zh-HK", ""); pref("font.name.monospace.zh-HK", ""); pref("font.name.cursive.zh-HK", ""); pref("font.name.serif.x-devanagari", ""); pref("font.name.sans-serif.x-devanagari", ""); pref("font.name.monospace.x-devanagari", ""); pref("font.name.cursive.x-devanagari", ""); pref("font.name.serif.x-tamil", ""); pref("font.name.sans-serif.x-tamil", ""); pref("font.name.monospace.x-tamil", ""); pref("font.name.cursive.x-tamil", ""); pref("font.name.serif.x-armn", ""); pref("font.name.sans-serif.x-armn", ""); pref("font.name.monospace.x-armn", ""); pref("font.name.cursive.x-armn", ""); pref("font.name.serif.x-beng", ""); pref("font.name.sans-serif.x-beng", ""); pref("font.name.monospace.x-beng", ""); pref("font.name.cursive.x-beng", ""); pref("font.name.serif.x-cans", ""); pref("font.name.sans-serif.x-cans", ""); pref("font.name.monospace.x-cans", ""); pref("font.name.cursive.x-cans", ""); pref("font.name.serif.x-ethi", ""); pref("font.name.sans-serif.x-ethi", ""); pref("font.name.monospace.x-ethi", ""); pref("font.name.cursive.x-ethi", ""); pref("font.name.serif.x-geor", ""); pref("font.name.sans-serif.x-geor", ""); pref("font.name.monospace.x-geor", ""); pref("font.name.cursive.x-geor", ""); pref("font.name.serif.x-gujr", ""); pref("font.name.sans-serif.x-gujr", ""); pref("font.name.monospace.x-gujr", ""); pref("font.name.cursive.x-gujr", ""); pref("font.name.serif.x-guru", ""); pref("font.name.sans-serif.x-guru", ""); pref("font.name.monospace.x-guru", ""); pref("font.name.cursive.x-guru", ""); pref("font.name.serif.x-khmr", ""); pref("font.name.sans-serif.x-khmr", ""); pref("font.name.monospace.x-khmr", ""); pref("font.name.cursive.x-khmr", ""); pref("font.name.serif.x-mlym", ""); pref("font.name.sans-serif.x-mlym", ""); pref("font.name.monospace.x-mlym", ""); pref("font.name.cursive.x-mlym", ""); pref("font.name.serif.x-orya", ""); pref("font.name.sans-serif.x-orya", ""); pref("font.name.monospace.x-orya", ""); pref("font.name.cursive.x-orya", ""); pref("font.name.serif.x-telu", ""); pref("font.name.sans-serif.x-telu", ""); pref("font.name.monospace.x-telu", ""); pref("font.name.cursive.x-telu", ""); pref("font.name.serif.x-knda", ""); pref("font.name.sans-serif.x-knda", ""); pref("font.name.monospace.x-knda", ""); pref("font.name.cursive.x-knda", ""); pref("font.name.serif.x-sinh", ""); pref("font.name.sans-serif.x-sinh", ""); pref("font.name.monospace.x-sinh", ""); pref("font.name.cursive.x-sinh", ""); pref("font.name.serif.x-tibt", ""); pref("font.name.sans-serif.x-tibt", ""); pref("font.name.monospace.x-tibt", ""); pref("font.name.cursive.x-tibt", ""); pref("font.name.serif.x-math", ""); pref("font.name.sans-serif.x-math", ""); pref("font.name.monospace.x-math", ""); pref("font.name.cursive.x-math", ""); pref("font.name-list.serif.x-math", "Latin Modern Math, STIX Two Math, XITS Math, Cambria Math, Libertinus Math, DejaVu Math TeX Gyre, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Schola, TeX Gyre Termes Math, STIX Math, Asana Math, STIXGeneral, DejaVu Serif, DejaVu Sans, serif"); pref("font.name-list.sans-serif.x-math", "sans-serif"); pref("font.name-list.monospace.x-math", "monospace"); // Some CJK fonts have bad underline offset, their CJK character glyphs are overlapped (or adjoined) to its underline. // These fonts are ignored the underline offset, instead of it, the underline is lowered to bottom of its em descent. 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"); pref("images.dither", "auto"); pref("security.directory", ""); pref("signed.applets.codebase_principal_support", false); pref("security.checkloaduri", true); pref("security.xpconnect.plugin.unrestricted", true); // security-sensitive dialogs should delay button enabling. In milliseconds. pref("security.dialog_enable_delay", 1000); pref("security.notification_enable_delay", 500); pref("security.csp.enable", true); pref("security.csp.experimentalEnabled", false); pref("security.csp.enableStrictDynamic", true); // Default Content Security Policy to apply to signed contents. pref("security.signed_content.CSP.default", "script-src 'self'; style-src 'self'"); // Mixed content blocking pref("security.mixed_content.block_active_content", false); pref("security.mixed_content.block_display_content", false); // Sub-resource integrity pref("security.sri.enable", true); // Block scripts with wrong MIME type such as image/ or video/. pref("security.block_script_with_wrong_mime", true); // Block images of wrong MIME for XCTO: nosniff. pref("security.xcto_nosniff_block_images", false); // OCSP must-staple pref("security.ssl.enable_ocsp_must_staple", true); // Insecure Form Field Warning pref("security.insecure_field_warning.contextual.enabled", false); pref("security.insecure_field_warning.ignore_local_ip_address", true); // Disable pinning checks by default. pref("security.cert_pinning.enforcement_level", 0); // Do not process hpkp headers rooted by not built in roots by default. // This is to prevent accidental pinning from MITM devices and is used // for tests. pref("security.cert_pinning.process_headers_from_non_builtin_roots", false); // If set to true, allow view-source URIs to be opened from URIs that share // their protocol with the inner URI of the view-source URI pref("security.view-source.reachable-from-inner-protocol", false); // If set to true, in some limited circumstances it may be possible to load // privileged content in frames inside unprivileged content. pref("security.allow_chrome_frames_inside_content", false); // Services security settings pref("services.settings.server", "https://firefox.settings.services.mozilla.com/v1"); // Blocklist preferences pref("extensions.blocklist.enabled", true); // OneCRL freshness checking depends on this value, so if you change it, // please also update security.onecrl.maximum_staleness_in_seconds. pref("extensions.blocklist.interval", 86400); // Required blocklist freshness for OneCRL OCSP bypass // (default is 1.25x extensions.blocklist.interval, or 30 hours) pref("security.onecrl.maximum_staleness_in_seconds", 108000); pref("extensions.blocklist.url", "https://blocklists.settings.services.mozilla.com/v1/blocklist/3/%APP_ID%/%APP_VERSION%/%PRODUCT%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/%PING_COUNT%/%TOTAL_PING_COUNT%/%DAYS_SINCE_LAST_PING%/"); pref("extensions.blocklist.detailsURL", "https://blocked.cdn.mozilla.net/"); pref("extensions.blocklist.itemURL", "https://blocked.cdn.mozilla.net/%blockID%.html"); // Controls what level the blocklist switches from warning about items to forcibly // blocking them. pref("extensions.blocklist.level", 2); // Blocklist via settings server (Kinto) pref("services.blocklist.changes.path", "/buckets/monitor/collections/changes/records"); pref("services.blocklist.bucket", "blocklists"); pref("services.blocklist.onecrl.collection", "certificates"); pref("services.blocklist.onecrl.checked", 0); pref("services.blocklist.addons.collection", "addons"); pref("services.blocklist.addons.checked", 0); pref("services.blocklist.plugins.collection", "plugins"); pref("services.blocklist.plugins.checked", 0); pref("services.blocklist.pinning.enabled", true); pref("services.blocklist.pinning.bucket", "pinning"); pref("services.blocklist.pinning.collection", "pins"); pref("services.blocklist.pinning.checked", 0); pref("services.blocklist.gfx.collection", "gfx"); pref("services.blocklist.gfx.checked", 0); // Controls whether signing should be enforced on signature-capable blocklist // collections. pref("services.blocklist.signing.enforced", true); // Enable blocklists via the services settings mechanism pref("services.blocklist.update_enabled", true); // Modifier key prefs: default to Windows settings, // menu access key = alt, accelerator key = control. // Use 17 for Ctrl, 18 for Alt, 224 for Meta, 91 for Win, 0 for none. Mac settings in macprefs.js pref("ui.key.accelKey", 17); pref("ui.key.menuAccessKey", 18); pref("ui.key.generalAccessKey", -1); // If generalAccessKey is -1, use the following two prefs instead. // Use 0 for disabled, 1 for Shift, 2 for Ctrl, 4 for Alt, 8 for Meta, 16 for Win // (values can be combined, e.g. 5 for Alt+Shift) pref("ui.key.chromeAccess", 4); pref("ui.key.contentAccess", 5); pref("ui.key.menuAccessKeyFocuses", false); // overridden below pref("ui.key.saveLink.shift", true); // true = shift, false = meta // Disable page loading activity cursor by default. pref("ui.use_activity_cursor", false); // Middle-mouse handling pref("middlemouse.paste", false); pref("middlemouse.openNewWindow", true); pref("middlemouse.contentLoadURL", false); pref("middlemouse.scrollbarPosition", false); // Clipboard behavior pref("clipboard.autocopy", false); // Clipboard only supports text/plain pref("clipboard.plainTextOnly", false); #ifdef XP_WIN // Setting false you can disable 4th button and/or 5th button of your mouse. // 4th button is typically mapped to "Back" and 5th button is typically mapped // to "Forward" button. pref("mousebutton.4th.enabled", true); pref("mousebutton.5th.enabled", true); #endif // mouse wheel scroll transaction period of time (in milliseconds) pref("mousewheel.transaction.timeout", 1500); // mouse wheel scroll transaction is held even if the mouse cursor is moved. pref("mousewheel.transaction.ignoremovedelay", 100); // prefs for app level mouse wheel scrolling acceleration. // number of mousewheel clicks when acceleration starts // acceleration can be turned off if pref is set to -1 pref("mousewheel.acceleration.start", -1); // factor to be multiplied for constant acceleration pref("mousewheel.acceleration.factor", 10); // Prefs for override the system mouse wheel scrolling speed on // content of the web pages. When // "mousewheel.system_scroll_override_on_root_content.enabled" is true and the system // scrolling speed isn't customized by the user, the content scrolling // speed is multiplied by the following factors. The value will be used as // 1/100. E.g., 200 means 2.00. // NOTE: Even if "mousewheel.system_scroll_override_on_root_content.enabled" is // true, when Gecko detects the user customized the system scrolling speed // settings, the override isn't executed. pref("mousewheel.system_scroll_override_on_root_content.vertical.factor", 200); pref("mousewheel.system_scroll_override_on_root_content.horizontal.factor", 200); // mousewheel.*.action can specify the action when you use mosue wheel. // When no modifier keys are pressed or two or more modifires are pressed, // .default is used. // 0: Nothing happens // 1: Scrolling contents // 2: Go back or go forward, in your history // 3: Zoom in or out. pref("mousewheel.default.action", 1); pref("mousewheel.with_alt.action", 2); pref("mousewheel.with_control.action", 3); pref("mousewheel.with_meta.action", 1); // command key on Mac pref("mousewheel.with_shift.action", 1); pref("mousewheel.with_win.action", 1); // mousewheel.*.action.override_x will override the action // when the mouse wheel is rotated along the x direction. // -1: Don't override the action. // 0 to 3: Override the action with the specified value. pref("mousewheel.default.action.override_x", -1); pref("mousewheel.with_alt.action.override_x", -1); pref("mousewheel.with_control.action.override_x", -1); pref("mousewheel.with_meta.action.override_x", -1); // command key on Mac pref("mousewheel.with_shift.action.override_x", -1); pref("mousewheel.with_win.action.override_x", -1); // mousewheel.*.delta_multiplier_* can specify the value muliplied by the delta // value. The values will be used after divided by 100. I.e., 100 means 1.0, // -100 means -1.0. If the values were negative, the direction would be // reverted. The absolue value must be 100 or larger. pref("mousewheel.default.delta_multiplier_x", 100); pref("mousewheel.default.delta_multiplier_y", 100); pref("mousewheel.default.delta_multiplier_z", 100); pref("mousewheel.with_alt.delta_multiplier_x", 100); pref("mousewheel.with_alt.delta_multiplier_y", 100); pref("mousewheel.with_alt.delta_multiplier_z", 100); pref("mousewheel.with_control.delta_multiplier_x", 100); pref("mousewheel.with_control.delta_multiplier_y", 100); pref("mousewheel.with_control.delta_multiplier_z", 100); pref("mousewheel.with_meta.delta_multiplier_x", 100); // command key on Mac pref("mousewheel.with_meta.delta_multiplier_y", 100); // command key on Mac pref("mousewheel.with_meta.delta_multiplier_z", 100); // command key on Mac pref("mousewheel.with_shift.delta_multiplier_x", 100); pref("mousewheel.with_shift.delta_multiplier_y", 100); pref("mousewheel.with_shift.delta_multiplier_z", 100); pref("mousewheel.with_win.delta_multiplier_x", 100); pref("mousewheel.with_win.delta_multiplier_y", 100); pref("mousewheel.with_win.delta_multiplier_z", 100); // If line-height is lower than this value (in device pixels), 1 line scroll // scrolls this height. pref("mousewheel.min_line_scroll_amount", 5); // These define the smooth scroll behavior (min ms, max ms) for different triggers // Some triggers: // mouseWheel: Discrete mouse wheel events, Synaptics touchpads on windows (generate wheel events) // Lines: Up/Down/Left/Right KB arrows // Pages: Page up/down, Space // Scrollbars: Clicking scrollbars arrows, clicking scrollbars tracks // Note: Currently OS X trackpad and magic mouse don't use our smooth scrolling // Note: These are relevant only when "general.smoothScroll" is enabled pref("general.smoothScroll.mouseWheel.durationMinMS", 200); pref("general.smoothScroll.mouseWheel.durationMaxMS", 400); pref("general.smoothScroll.pixels.durationMinMS", 150); pref("general.smoothScroll.pixels.durationMaxMS", 150); pref("general.smoothScroll.lines.durationMinMS", 150); pref("general.smoothScroll.lines.durationMaxMS", 150); pref("general.smoothScroll.pages.durationMinMS", 150); pref("general.smoothScroll.pages.durationMaxMS", 150); pref("general.smoothScroll.scrollbars.durationMinMS", 150); pref("general.smoothScroll.scrollbars.durationMaxMS", 150); pref("general.smoothScroll.other.durationMinMS", 150); pref("general.smoothScroll.other.durationMaxMS", 150); // Enable disable smooth scrolling for different triggers (when "general.smoothScroll" is enabled) pref("general.smoothScroll.mouseWheel", true); pref("general.smoothScroll.pixels", true); pref("general.smoothScroll.lines", true); pref("general.smoothScroll.pages", true); pref("general.smoothScroll.scrollbars", true); pref("general.smoothScroll.other", true); // To connect consecutive scroll events into a continuous flow, the animation's duration // should be longer than scroll events intervals (or else the scroll will stop // before the next event arrives - we're guessing next interval by averaging recent // intervals). // This defines how longer is the duration compared to events interval (percentage) pref("general.smoothScroll.durationToIntervalRatio", 200); // These two prefs determine the timing function. pref("general.smoothScroll.currentVelocityWeighting", "0.25"); pref("general.smoothScroll.stopDecelerationWeighting", "0.4"); // Alternative smooth scroll physics ("MSD" = Mass-Spring-Damper) pref("general.smoothScroll.msdPhysics.enabled", false); pref("general.smoothScroll.msdPhysics.continuousMotionMaxDeltaMS", 120); pref("general.smoothScroll.msdPhysics.motionBeginSpringConstant", 1250); pref("general.smoothScroll.msdPhysics.slowdownMinDeltaMS", 12); pref("general.smoothScroll.msdPhysics.slowdownMinDeltaRatio", "1.3"); pref("general.smoothScroll.msdPhysics.slowdownSpringConstant", 2000); pref("general.smoothScroll.msdPhysics.regularSpringConstant", 1000); pref("profile.confirm_automigration",true); // profile.migration_behavior determines how the profiles root is set // 0 - use NS_APP_USER_PROFILES_ROOT_DIR // 1 - create one based on the NS4.x profile root // 2 - use, if not empty, profile.migration_directory otherwise same as 0 pref("profile.migration_behavior",0); pref("profile.migration_directory", ""); // the amount of time (in seconds) that must elapse // before we think your mozilla profile is defunct // and you'd benefit from re-migrating from 4.x // see bug #137886 for more details // // if -1, we never think your profile is defunct // and users will never see the remigrate UI. pref("profile.seconds_until_defunct", -1); // We can show it anytime from menus pref("profile.manage_only_at_launch", false); pref("prefs.converted-to-utf8",false); // ------------------ // Text Direction // ------------------ // 1 = directionLTRBidi * // 2 = directionRTLBidi pref("bidi.direction", 1); // ------------------ // Text Type // ------------------ // 1 = charsettexttypeBidi * // 2 = logicaltexttypeBidi // 3 = visualtexttypeBidi pref("bidi.texttype", 1); // ------------------ // Numeral Style // ------------------ // 0 = nominalnumeralBidi * // 1 = regularcontextnumeralBidi // 2 = hindicontextnumeralBidi // 3 = arabicnumeralBidi // 4 = hindinumeralBidi // 5 = persiancontextnumeralBidi // 6 = persiannumeralBidi pref("bidi.numeral", 0); // Whether delete and backspace should immediately delete characters not // visually adjacent to the caret, or adjust the visual position of the caret // on the first keypress and delete the character on a second keypress pref("bidi.edit.delete_immediately", true); // Bidi caret movement style: // 0 = logical // 1 = visual // 2 = visual, but logical during selection pref("bidi.edit.caret_movement_style", 2); // Setting this pref to |true| forces Bidi UI menu items and keyboard shortcuts // to be exposed, and enables the directional caret hook. By default, only // expose it for bidi-associated system locales. pref("bidi.browser.ui", false); // used for double-click word selection behavior. Win will override. pref("layout.word_select.eat_space_to_next_word", false); pref("layout.word_select.stop_at_punctuation", true); // controls caret style and word-delete during text selection // 0 = use platform default // 1 = caret moves and blinks as when there is no selection; word // delete deselects the selection and then deletes word // 2 = caret moves to selection edge and is not visible during selection; // word delete deletes the selection (Mac and Linux default) // 3 = caret moves and blinks as when there is no selection; word delete // deletes the selection // Windows default is 1 for word delete behavior, the rest as for 2. pref("layout.selection.caret_style", 0); // pref to report CSS errors to the error console pref("layout.css.report_errors", true); // Should the :visited selector ever match (otherwise :link matches instead)? pref("layout.css.visited_links_enabled", true); // Override DPI. A value of -1 means use the maximum of 96 and the system DPI. // A value of 0 means use the system DPI. A positive value is used as the DPI. // This sets the physical size of a device pixel and thus controls the // interpretation of physical units such as "pt". pref("layout.css.dpi", -1); // Set the number of device pixels per CSS pixel. A value <= 0 means choose // automatically based on user settings for the platform (e.g., "UI scale factor" // on Mac). A positive value is used as-is. This effectively controls the size // of a CSS "px". This is only used for windows on the screen, not for printing. pref("layout.css.devPixelsPerPx", "-1.0"); // Is support for CSS initial-letter property enabled? pref("layout.css.initial-letter.enabled", false); // Is support for mix-blend-mode enabled? pref("layout.css.mix-blend-mode.enabled", true); // Is support for isolation enabled? pref("layout.css.isolation.enabled", true); // Is support for CSS Filters enabled? pref("layout.css.filters.enabled", true); // Set the threshold distance in CSS pixels below which scrolling will snap to // an edge, when scroll snapping is set to "proximity". pref("layout.css.scroll-snap.proximity-threshold", 200); // When selecting the snap point for CSS scroll snapping, the velocity of the // scroll frame is clamped to this speed, in CSS pixels / s. pref("layout.css.scroll-snap.prediction-max-velocity", 2000); // When selecting the snap point for CSS scroll snapping, the velocity of the // scroll frame is integrated over this duration, in seconds. The snap point // best suited for this position is selected, enabling the user to perform fling // gestures. pref("layout.css.scroll-snap.prediction-sensitivity", "0.750"); // Is support for DOMPoint enabled? pref("layout.css.DOMPoint.enabled", true); // Is support for DOMQuad enabled? pref("layout.css.DOMQuad.enabled", true); // Is support for DOMMatrix enabled? pref("layout.css.DOMMatrix.enabled", true); // Is support for GeometryUtils.getBoxQuads enabled? #ifdef RELEASE_OR_BETA pref("layout.css.getBoxQuads.enabled", false); #else pref("layout.css.getBoxQuads.enabled", true); #endif // Is support for GeometryUtils.convert*FromNode enabled? #ifdef RELEASE_OR_BETA pref("layout.css.convertFromNode.enabled", false); #else pref("layout.css.convertFromNode.enabled", true); #endif // Is support for CSS "text-align: unsafe X" enabled? pref("layout.css.text-align-unsafe-value.enabled", false); // Is support for CSS text-justify property enabled? pref("layout.css.text-justify.enabled", true); // Is support for CSS "float: inline-{start,end}" and // "clear: inline-{start,end}" enabled? pref("layout.css.float-logical-values.enabled", true); // Is support for the CSS4 image-orientation property enabled? pref("layout.css.image-orientation.enabled", true); // Is support for the font-display @font-face descriptor enabled? pref("layout.css.font-display.enabled", true); // Is support for variation fonts enabled? pref("layout.css.font-variations.enabled", false); // Is support for the frames() timing function enabled? #ifdef RELEASE_OR_BETA pref("layout.css.frames-timing.enabled", false); #else pref("layout.css.frames-timing.enabled", true); #endif // Are sets of prefixed properties supported? pref("layout.css.prefixes.border-image", true); pref("layout.css.prefixes.transforms", true); pref("layout.css.prefixes.transitions", true); pref("layout.css.prefixes.animations", true); pref("layout.css.prefixes.box-sizing", true); pref("layout.css.prefixes.font-features", true); // Is -moz-prefixed gradient functions enabled? pref("layout.css.prefixes.gradients", true); // Are webkit-prefixed properties & property-values supported? pref("layout.css.prefixes.webkit", true); // Are "-webkit-{min|max}-device-pixel-ratio" media queries supported? // (Note: this pref has no effect if the master 'layout.css.prefixes.webkit' // pref is set to false.) pref("layout.css.prefixes.device-pixel-ratio-webkit", false); // Is support for