Bumping manifests a=b2g-bump
[gecko.git] / b2g / app / b2g.js
blobf38daea3b7f1e2ab5775e305631c111277a0357f
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #filter substitution
7 #ifndef MOZ_MULET
8 pref("toolkit.defaultChromeURI", "chrome://b2g/content/shell.html");
9 pref("browser.chromeURL", "chrome://b2g/content/");
10 #endif
12 #ifdef MOZ_MULET
13 // Set FxOS as the default homepage
14 // bug 1000122: this pref is fetched as a complex value,
15 // so that it can't be set a just a string.
16 // data: url is a workaround this.
17 pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=chrome://b2g/content/shell.html");
18 pref("b2g.is_mulet", true);
19 // Prevent having the firstrun page
20 pref("startup.homepage_welcome_url", "");
21 pref("browser.shell.checkDefaultBrowser", false);
22 // Automatically open devtools on the firefox os panel
23 pref("devtools.toolbox.host", "side");
24 pref("devtools.toolbox.sidebar.width", 800);
25 // Disable session store to ensure having only one tab opened
26 pref("browser.sessionstore.max_tabs_undo", 0);
27 pref("browser.sessionstore.max_windows_undo", 0);
28 pref("browser.sessionstore.restore_on_demand", false);
29 pref("browser.sessionstore.resume_from_crash", false);
30 // No e10s on mulet
31 pref("browser.tabs.remote.autostart.1", false);
32 #endif
34 // Bug 945235: Prevent all bars to be considered visible:
35 pref("toolkit.defaultChromeFeatures", "chrome,dialog=no,close,resizable,scrollbars,extrachrome");
37 // Disable focus rings
38 pref("browser.display.focus_ring_width", 0);
40 // Device pixel to CSS px ratio, in percent. Set to -1 to calculate based on display density.
41 pref("browser.viewport.scaleRatio", -1);
43 /* disable text selection */
44 pref("browser.ignoreNativeFrameTextSelection", true);
46 /* cache prefs */
47 #ifdef MOZ_WIDGET_GONK
48 pref("browser.cache.disk.enable", true);
49 pref("browser.cache.disk.capacity", 55000); // kilobytes
50 pref("browser.cache.disk.parent_directory", "/cache");
51 #endif
52 pref("browser.cache.disk.smart_size.enabled", false);
53 pref("browser.cache.disk.smart_size.first_run", false);
55 pref("browser.cache.memory.enable", true);
56 pref("browser.cache.memory.capacity", 1024); // kilobytes
58 pref("browser.cache.memory_limit", 2048); // 2 MB
60 /* image cache prefs */
61 pref("image.cache.size", 1048576); // bytes
62 pref("image.high_quality_downscaling.enabled", false);
63 pref("canvas.image.cache.limit", 20971520); // 20 MB
65 /* offline cache prefs */
66 pref("browser.offline-apps.notify", false);
67 pref("browser.cache.offline.enable", true);
68 pref("offline-apps.allow_by_default", true);
70 /* protocol warning prefs */
71 pref("network.protocol-handler.warn-external.tel", false);
72 pref("network.protocol-handler.warn-external.mailto", false);
73 pref("network.protocol-handler.warn-external.vnd.youtube", false);
75 /* http prefs */
76 pref("network.http.pipelining", true);
77 pref("network.http.pipelining.ssl", true);
78 pref("network.http.proxy.pipelining", true);
79 pref("network.http.pipelining.maxrequests" , 6);
80 pref("network.http.keep-alive.timeout", 109);
81 pref("network.http.max-connections", 20);
82 pref("network.http.max-persistent-connections-per-server", 6);
83 pref("network.http.max-persistent-connections-per-proxy", 20);
85 // Keep the old default of accepting all cookies,
86 // no matter if you already visited the website or not
87 pref("network.cookie.cookieBehavior", 0);
89 // spdy
90 pref("network.http.spdy.enabled.http2draft", false);
91 pref("network.http.spdy.push-allowance", 32768);
93 // See bug 545869 for details on why these are set the way they are
94 pref("network.buffer.cache.count", 24);
95 pref("network.buffer.cache.size",  16384);
97 // predictive actions
98 pref("network.predictor.enable", false); // disabled on b2g
99 pref("network.predictor.max-db-size", 2097152); // bytes
100 pref("network.predictor.preserve", 50); // percentage of predictor data to keep when cleaning up
102 /* session history */
103 pref("browser.sessionhistory.max_total_viewers", 1);
104 pref("browser.sessionhistory.max_entries", 50);
105 pref("browser.sessionhistory.contentViewerTimeout", 360);
107 /* session store */
108 pref("browser.sessionstore.resume_session_once", false);
109 pref("browser.sessionstore.resume_from_crash", true);
110 pref("browser.sessionstore.resume_from_crash_timeout", 60); // minutes
111 pref("browser.sessionstore.interval", 10000); // milliseconds
112 pref("browser.sessionstore.max_tabs_undo", 1);
114 /* these should help performance */
115 pref("mozilla.widget.force-24bpp", true);
116 pref("mozilla.widget.use-buffer-pixmap", true);
117 pref("mozilla.widget.disable-native-theme", true);
118 pref("layout.reflow.synthMouseMove", false);
119 pref("layers.enable-tiles", true);
120 pref("layers.low-precision-buffer", true);
121 pref("layers.low-precision-opacity", "0.5");
122 pref("layers.progressive-paint", true);
124 /* download manager (don't show the window or alert) */
125 pref("browser.download.useDownloadDir", true);
126 pref("browser.download.folderList", 1); // Default to ~/Downloads
127 pref("browser.download.manager.showAlertOnComplete", false);
128 pref("browser.download.manager.showAlertInterval", 2000);
129 pref("browser.download.manager.retention", 2);
130 pref("browser.download.manager.showWhenStarting", false);
131 pref("browser.download.manager.closeWhenDone", true);
132 pref("browser.download.manager.openDelay", 0);
133 pref("browser.download.manager.focusWhenStarting", false);
134 pref("browser.download.manager.flashCount", 2);
135 pref("browser.download.manager.displayedHistoryDays", 7);
137 /* download helper */
138 pref("browser.helperApps.deleteTempFileOnExit", false);
140 /* password manager */
141 pref("signon.rememberSignons", true);
142 pref("signon.expireMasterPassword", false);
144 /* autocomplete */
145 pref("browser.formfill.enable", true);
147 /* spellcheck */
148 pref("layout.spellcheckDefault", 0);
150 /* block popups by default, and notify the user about blocked popups */
151 pref("dom.disable_open_during_load", true);
152 pref("privacy.popups.showBrowserMessage", true);
154 pref("keyword.enabled", true);
155 pref("browser.fixup.domainwhitelist.localhost", true);
157 pref("accessibility.typeaheadfind", false);
158 pref("accessibility.typeaheadfind.timeout", 5000);
159 pref("accessibility.typeaheadfind.flashBar", 1);
160 pref("accessibility.typeaheadfind.linksonly", false);
161 pref("accessibility.typeaheadfind.casesensitive", 0);
163 // SSL error page behaviour
164 pref("browser.ssl_override_behavior", 2);
165 pref("browser.xul.error_pages.expert_bad_cert", false);
167 // disable updating
168 pref("browser.search.update", false);
170 // tell the search service that we don't really expose the "current engine"
171 pref("browser.search.noCurrentEngine", true);
173 // enable xul error pages
174 pref("browser.xul.error_pages.enabled", true);
176 // disable color management
177 pref("gfx.color_management.mode", 0);
179 // don't allow JS to move and resize existing windows
180 pref("dom.disable_window_move_resize", true);
182 // prevent click image resizing for nsImageDocument
183 pref("browser.enable_click_image_resizing", false);
185 // controls which bits of private data to clear. by default we clear them all.
186 pref("privacy.item.cache", true);
187 pref("privacy.item.cookies", true);
188 pref("privacy.item.offlineApps", true);
189 pref("privacy.item.history", true);
190 pref("privacy.item.formdata", true);
191 pref("privacy.item.downloads", true);
192 pref("privacy.item.passwords", true);
193 pref("privacy.item.sessions", true);
194 pref("privacy.item.geolocation", true);
195 pref("privacy.item.siteSettings", true);
196 pref("privacy.item.syncAccount", true);
198 // base url for the wifi geolocation network provider
199 pref("geo.provider.use_mls", false);
200 pref("geo.cell.scan", true);
201 pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
203 // enable geo
204 pref("geo.enabled", true);
206 // content sink control -- controls responsiveness during page load
207 // see https://bugzilla.mozilla.org/show_bug.cgi?id=481566#c9
208 pref("content.sink.enable_perf_mode",  2); // 0 - switch, 1 - interactive, 2 - perf
209 pref("content.sink.pending_event_mode", 0);
210 pref("content.sink.perf_deflect_count", 1000000);
211 pref("content.sink.perf_parse_time", 50000000);
213 // Maximum scripts runtime before showing an alert
214 // Disable the watchdog thread for B2G. See bug 870043 comment 31.
215 pref("dom.use_watchdog", false);
217 // The slow script dialog can be triggered from inside the JS engine as well,
218 // ensure that those calls don't accidentally trigger the dialog.
219 pref("dom.max_script_run_time", 0);
220 pref("dom.max_chrome_script_run_time", 0);
222 // plugins
223 pref("plugin.disable", true);
224 pref("dom.ipc.plugins.enabled", true);
226 // product URLs
227 // The breakpad report server to link to in about:crashes
228 pref("breakpad.reportURL", "https://crash-stats.mozilla.com/report/index/");
229 pref("app.releaseNotesURL", "http://www.mozilla.com/%LOCALE%/b2g/%VERSION%/releasenotes/");
230 pref("app.support.baseURL", "http://support.mozilla.com/b2g");
231 pref("app.privacyURL", "http://www.mozilla.com/%LOCALE%/m/privacy.html");
232 pref("app.creditsURL", "http://www.mozilla.org/credits/");
233 pref("app.featuresURL", "http://www.mozilla.com/%LOCALE%/b2g/features/");
234 pref("app.faqURL", "http://www.mozilla.com/%LOCALE%/b2g/faq/");
236 // Name of alternate about: page for certificate errors (when undefined, defaults to about:neterror)
237 pref("security.alternate_certificate_error_page", "certerror");
239 pref("security.warn_viewing_mixed", false); // Warning is disabled.  See Bug 616712.
241 // 2 = strict certificate pinning checks.
242 // This default preference is more strict than Firefox because B2G
243 // currently does not have a way to install local root certificates.
244 // Strict checking is effectively equivalent to non-strict checking as
245 // long as that is true.  If an ability to add local certificates is
246 // added, there may be a need to change this pref.
247 pref("security.cert_pinning.enforcement_level", 2);
250 // Override some named colors to avoid inverse OS themes
251 pref("ui.-moz-dialog", "#efebe7");
252 pref("ui.-moz-dialogtext", "#101010");
253 pref("ui.-moz-field", "#fff");
254 pref("ui.-moz-fieldtext", "#1a1a1a");
255 pref("ui.-moz-buttonhoverface", "#f3f0ed");
256 pref("ui.-moz-buttonhovertext", "#101010");
257 pref("ui.-moz-combobox", "#fff");
258 pref("ui.-moz-comboboxtext", "#101010");
259 pref("ui.buttonface", "#ece7e2");
260 pref("ui.buttonhighlight", "#fff");
261 pref("ui.buttonshadow", "#aea194");
262 pref("ui.buttontext", "#101010");
263 pref("ui.captiontext", "#101010");
264 pref("ui.graytext", "#b1a598");
265 pref("ui.highlighttext", "#1a1a1a");
266 pref("ui.threeddarkshadow", "#000");
267 pref("ui.threedface", "#ece7e2");
268 pref("ui.threedhighlight", "#fff");
269 pref("ui.threedlightshadow", "#ece7e2");
270 pref("ui.threedshadow", "#aea194");
271 pref("ui.windowframe", "#efebe7");
273 // Themable via mozSettings
274 pref("ui.menu", "#f97c17");
275 pref("ui.menutext", "#ffffff");
276 pref("ui.infobackground", "#343e40");
277 pref("ui.infotext", "#686868");
278 pref("ui.window", "#ffffff");
279 pref("ui.windowtext", "#000000");
280 pref("ui.highlight", "#b2f2ff");
282 // replace newlines with spaces on paste into single-line text boxes
283 pref("editor.singleLine.pasteNewlines", 2);
285 // threshold where a tap becomes a drag, in 1/240" reference pixels
286 // The names of the preferences are to be in sync with EventStateManager.cpp
287 pref("ui.dragThresholdX", 25);
288 pref("ui.dragThresholdY", 25);
290 // Layers Acceleration.  We can only have nice things on gonk, because
291 // they're not maintained anywhere else.
292 pref("layers.offmainthreadcomposition.enabled", true);
293 pref("layers.offmainthreadcomposition.async-animations", true);
294 #ifndef MOZ_WIDGET_GONK
295 pref("dom.ipc.tabs.disabled", true);
296 #else
297 pref("dom.ipc.tabs.disabled", false);
298 pref("layers.acceleration.disabled", false);
299 pref("layers.async-pan-zoom.enabled", true);
300 pref("gfx.content.azure.backends", "cairo");
301 #endif
303 // Web Notifications
304 pref("notification.feature.enabled", true);
306 // IndexedDB
307 pref("dom.indexedDB.warningQuota", 5);
309 // prevent video elements from preloading too much data
310 pref("media.preload.default", 1); // default to preload none
311 pref("media.preload.auto", 2);    // preload metadata if preload=auto
312 pref("media.cache_size", 4096);    // 4MB media cache
313 // Try to save battery by not resuming reading from a connection until we fall
314 // below 10s of buffered data.
315 pref("media.cache_resume_threshold", 10);
316 pref("media.cache_readahead_limit", 30);
318 #ifdef MOZ_FMP4
319 // Enable/Disable Gonk Decoder Module
320 pref("media.fragmented-mp4.gonk.enabled", true);
321 #endif
322 // The default number of decoded video frames that are enqueued in
323 // MediaDecoderReader's mVideoQueue.
324 pref("media.video-queue.default-size", 3);
326 // optimize images' memory usage
327 pref("image.mem.decodeondraw", false);
328 pref("image.mem.allow_locking_in_content_processes", false); /* don't allow image locking */
329 // Limit the surface cache to 1/8 of main memory or 128MB, whichever is smaller.
330 // Almost everything that was factored into 'max_decoded_image_kb' is now stored
331 // in the surface cache.  1/8 of main memory is 32MB on a 256MB device, which is
332 // about the same as the old 'max_decoded_image_kb'.
333 pref("image.mem.surfacecache.max_size_kb", 131072);  // 128MB
334 pref("image.mem.surfacecache.size_factor", 8);  // 1/8 of main memory
335 pref("image.mem.surfacecache.discard_factor", 2);  // Discard 1/2 of the surface cache at a time.
336 pref("image.mem.surfacecache.min_expiration_ms", 86400000); // 24h, we rely on the out of memory hook
337 pref("image.onload.decode.limit", 24); /* don't decode more than 24 images eagerly */
339 // XXX this isn't a good check for "are touch events supported", but
340 // we don't really have a better one at the moment.
341 // enable touch events interfaces
342 pref("dom.w3c_touch_events.enabled", 1);
343 pref("dom.w3c_touch_events.safetyX", 0); // escape borders in units of 1/240"
344 pref("dom.w3c_touch_events.safetyY", 120); // escape borders in units of 1/240"
346 #ifdef MOZ_SAFE_BROWSING
347 // Safe browsing does nothing unless this pref is set
348 pref("browser.safebrowsing.enabled", true);
350 // Prevent loading of pages identified as malware
351 pref("browser.safebrowsing.malware.enabled", true);
353 // Non-enhanced mode (local url lists) URL list to check for updates
354 pref("browser.safebrowsing.provider.0.updateURL", "https://safebrowsing.google.com/safebrowsing/downloads?client={moz:client}&appver={moz:version}&pver=2.2&key=%GOOGLE_API_KEY%");
356 pref("browser.safebrowsing.dataProvider", 0);
358 // Does the provider name need to be localizable?
359 pref("browser.safebrowsing.provider.0.name", "Google");
360 pref("browser.safebrowsing.provider.0.reportURL", "https://safebrowsing.google.com/safebrowsing/report?");
361 pref("browser.safebrowsing.provider.0.gethashURL", "https://safebrowsing.google.com/safebrowsing/gethash?client={moz:client}&appver={moz:version}&pver=2.2");
363 // HTML report pages
364 pref("browser.safebrowsing.provider.0.reportGenericURL", "http://{moz:locale}.phish-generic.mozilla.com/?hl={moz:locale}");
365 pref("browser.safebrowsing.provider.0.reportErrorURL", "http://{moz:locale}.phish-error.mozilla.com/?hl={moz:locale}");
366 pref("browser.safebrowsing.provider.0.reportPhishURL", "http://{moz:locale}.phish-report.mozilla.com/?hl={moz:locale}");
367 pref("browser.safebrowsing.provider.0.reportMalwareURL", "http://{moz:locale}.malware-report.mozilla.com/?hl={moz:locale}");
368 pref("browser.safebrowsing.provider.0.reportMalwareErrorURL", "http://{moz:locale}.malware-error.mozilla.com/?hl={moz:locale}");
370 // FAQ URLs
372 // Name of the about: page contributed by safebrowsing to handle display of error
373 // pages on phishing/malware hits.  (bug 399233)
374 pref("urlclassifier.alternate_error_page", "blocked");
376 // The number of random entries to send with a gethash request.
377 pref("urlclassifier.gethashnoise", 4);
379 // Gethash timeout for Safebrowsing.
380 pref("urlclassifier.gethash.timeout_ms", 5000);
382 // If an urlclassifier table has not been updated in this number of seconds,
383 // a gethash request will be forced to check that the result is still in
384 // the database.
385 pref("urlclassifier.max-complete-age", 2700);
387 // URL for checking the reason for a malware warning.
388 pref("browser.safebrowsing.malware.reportURL", "https://safebrowsing.google.com/safebrowsing/diagnostic?client=%NAME%&hl=%LOCALE%&site=");
389 #endif
391 // True if this is the first time we are showing about:firstrun
392 pref("browser.firstrun.show.uidiscovery", true);
393 pref("browser.firstrun.show.localepicker", true);
395 // initiated by a user
396 pref("content.ime.strict_policy", true);
398 // True if you always want dump() to work
400 // On Android, you also need to do the following for the output
401 // to show up in logcat:
403 // $ adb shell stop
404 // $ adb shell setprop log.redirect-stdio true
405 // $ adb shell start
406 pref("browser.dom.window.dump.enabled", false);
408 // Default Content Security Policy to apply to certified apps.
409 // If you change this CSP, make sure to update the fast path in nsCSPService.cpp
410 pref("security.apps.certified.CSP.default", "default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline' app://theme.gaiamobile.org");
411 // Default Content Security Policy to apply to trusted apps.
412 pref("security.apps.trusted.CSP.default", "default-src *; object-src 'none'; frame-src 'none'");
414 // Temporarily force-enable GL compositing.  This is default-disabled
415 // deep within the bowels of the widgetry system.  Remove me when GL
416 // compositing isn't default disabled in widget/android.
417 pref("layers.acceleration.force-enabled", true);
419 // handle links targeting new windows
420 // 1=current window/tab, 2=new window, 3=new tab in most recent window
421 pref("browser.link.open_newwindow", 3);
423 // 0: no restrictions - divert everything
424 // 1: don't divert window.open at all
425 // 2: don't divert window.open with features
426 pref("browser.link.open_newwindow.restriction", 0);
428 // Enable browser frames (including OOP, except on Windows, where it doesn't
429 // work), but make in-process browser frames the default.
430 pref("dom.mozBrowserFramesEnabled", true);
432 // Enable a (virtually) unlimited number of mozbrowser processes.
433 // We'll run out of PIDs on UNIX-y systems before we hit this limit.
434 pref("dom.ipc.processCount", 100000);
436 pref("dom.ipc.browser_frames.oop_by_default", false);
438 pref("dom.meta-viewport.enabled", true);
440 // SMS/MMS
441 pref("dom.sms.enabled", true);
443 //The waiting time in network manager.
444 pref("network.gonk.ms-release-mms-connection", 30000);
446 // WebContacts
447 pref("dom.mozContacts.enabled", true);
449 // Shortnumber matching needed for e.g. Brazil:
450 // 03187654321 can be found with 87654321
451 pref("dom.phonenumber.substringmatching.BR", 8);
452 pref("dom.phonenumber.substringmatching.CO", 10);
453 pref("dom.phonenumber.substringmatching.VE", 7);
454 pref("dom.phonenumber.substringmatching.CL", 8);
455 pref("dom.phonenumber.substringmatching.PE", 7);
457 // WebAlarms
458 pref("dom.mozAlarms.enabled", true);
460 // SimplePush
461 pref("services.push.enabled", true);
462 // Debugging enabled.
463 pref("services.push.debug", false);
464 // Is the network connection allowed to be up?
465 // This preference should be used in UX to enable/disable push.
466 pref("services.push.connection.enabled", true);
467 // serverURL to be assigned by services team
468 pref("services.push.serverURL", "wss://push.services.mozilla.com/");
469 pref("services.push.userAgentID", "");
470 // Exponential back-off start is 5 seconds like in HTTP/1.1.
471 // Maximum back-off is pingInterval.
472 pref("services.push.retryBaseInterval", 5000);
473 // Interval at which to ping PushServer to check connection status. In
474 // milliseconds. If no reply is received within requestTimeout, the connection
475 // is considered closed.
476 pref("services.push.pingInterval", 1800000); // 30 minutes
477 // How long before a DOMRequest errors as timeout
478 pref("services.push.requestTimeout", 10000);
479 pref("services.push.pingInterval.default", 180000);// 3 min
480 pref("services.push.pingInterval.mobile", 180000); // 3 min
481 pref("services.push.pingInterval.wifi", 180000);  // 3 min
482 // Adaptive ping
483 pref("services.push.adaptive.enabled", true);
484 pref("services.push.adaptive.lastGoodPingInterval", 180000);// 3 min
485 pref("services.push.adaptive.lastGoodPingInterval.mobile", 180000);// 3 min
486 pref("services.push.adaptive.lastGoodPingInterval.wifi", 180000);// 3 min
487 // Valid gap between the biggest good ping and the bad ping
488 pref("services.push.adaptive.gap", 60000); // 1 minute
489 // We limit the ping to this maximum value
490 pref("services.push.adaptive.upperLimit", 1740000); // 29 min
491 // enable udp wakeup support
492 pref("services.push.udp.wakeupEnabled", true);
494 // NetworkStats
495 #ifdef MOZ_WIDGET_GONK
496 pref("dom.mozNetworkStats.enabled", true);
497 pref("dom.webapps.firstRunWithSIM", true);
498 #endif
500 // ResourceStats
501 #ifdef MOZ_WIDGET_GONK
502 pref("dom.resource_stats.enabled", true);
503 #endif
505 #ifdef MOZ_B2G_RIL
506 // SingleVariant
507 pref("dom.mozApps.single_variant_sourcedir", "/persist/svoperapps");
508 #endif
510 // WebSettings
511 pref("dom.mozSettings.enabled", true);
512 pref("dom.mozPermissionSettings.enabled", true);
514 // controls if we want camera support
515 pref("device.camera.enabled", true);
516 pref("media.realtime_decoder.enabled", true);
518 // TCPSocket
519 pref("dom.mozTCPSocket.enabled", true);
521 // WebPayment
522 pref("dom.mozPay.enabled", true);
524 // "Preview" landing of bug 710563, which is bogged down in analysis
525 // of talos regression.  This is a needed change for higher-framerate
526 // CSS animations, and incidentally works around an apparent bug in
527 // our handling of requestAnimationFrame() listeners, which are
528 // supposed to enable this REPEATING_PRECISE_CAN_SKIP behavior.  The
529 // secondary bug isn't really worth investigating since it's obseleted
530 // by bug 710563.
531 pref("layout.frame_rate.precise", true);
533 // Handle hardware buttons in the b2g chrome package
534 pref("b2g.keys.menu.enabled", true);
536 // Screen timeout in seconds
537 pref("power.screen.timeout", 60);
539 pref("full-screen-api.enabled", true);
541 #ifndef MOZ_WIDGET_GONK
542 // If we're not actually on physical hardware, don't make the top level widget
543 // fullscreen when transitioning to fullscreen. This means in emulated
544 // environments (like the b2g desktop client) we won't make the client window
545 // fill the whole screen, we'll just make the content fill the client window,
546 // i.e. it won't give the impression to content that the number of device
547 // screen pixels changes!
548 pref("full-screen-api.ignore-widgets", true);
549 #endif
551 pref("media.volume.steps", 10);
553 #ifdef ENABLE_MARIONETTE
554 //Enable/disable marionette server, set listening port
555 pref("marionette.defaultPrefs.enabled", true);
556 pref("marionette.defaultPrefs.port", 2828);
557 #ifndef MOZ_WIDGET_GONK
558 // On desktop builds, we need to force the socket to listen on localhost only
559 pref("marionette.force-local", true);
560 #endif
561 #endif
563 #ifdef MOZ_UPDATER
564 // When we're applying updates, we can't let anything hang us on
565 // quit+restart.  The user has no recourse.
566 pref("shutdown.watchdog.timeoutSecs", 10);
567 // Timeout before the update prompt automatically installs the update
568 pref("b2g.update.apply-prompt-timeout", 60000); // milliseconds
569 // Amount of time to wait after the user is idle before prompting to apply an update
570 pref("b2g.update.apply-idle-timeout", 600000); // milliseconds
571 // Amount of time after which connection will be restarted if no progress
572 pref("b2g.update.download-watchdog-timeout", 120000); // milliseconds
573 pref("b2g.update.download-watchdog-max-retries", 5);
575 pref("app.update.enabled", true);
576 pref("app.update.auto", false);
577 pref("app.update.silent", false);
578 pref("app.update.mode", 0);
579 pref("app.update.incompatible.mode", 0);
580 pref("app.update.staging.enabled", true);
581 pref("app.update.service.enabled", true);
583 pref("app.update.url", "https://aus4.mozilla.org/update/3/%PRODUCT%/%VERSION%/%BUILD_ID%/%PRODUCT_DEVICE%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml");
584 pref("app.update.channel", "@MOZ_UPDATE_CHANNEL@");
586 // Interval at which update manifest is fetched.  In units of seconds.
587 pref("app.update.interval", 86400); // 1 day
588 // Don't throttle background updates.
589 pref("app.update.download.backgroundInterval", 0);
591 // Retry update socket connections every 30 seconds in the cases of certain kinds of errors
592 pref("app.update.socket.retryTimeout", 30000);
594 // Max of 20 consecutive retries (total 10 minutes) before giving up and marking
595 // the update download as failed.
596 // Note: Offline errors will always retry when the network comes online.
597 pref("app.update.socket.maxErrors", 20);
599 // Enable update logging for now, to diagnose growing pains in the
600 // field.
601 pref("app.update.log", true);
602 #else
603 // Explicitly disable the shutdown watchdog.  It's enabled by default.
604 // When the updater is disabled, we want to know about shutdown hangs.
605 pref("shutdown.watchdog.timeoutSecs", -1);
606 #endif
608 // Allow webapps update checking
609 pref("webapps.update.enabled", true);
611 // Check daily for apps updates.
612 pref("webapps.update.interval", 86400);
614 // Extensions preferences
615 pref("extensions.update.enabled", false);
616 pref("extensions.getAddons.cache.enabled", false);
618 // Context Menu
619 pref("ui.click_hold_context_menus", true);
620 pref("ui.click_hold_context_menus.delay", 400);
622 // Enable device storage
623 pref("device.storage.enabled", true);
625 // Enable pre-installed applications
626 pref("dom.webapps.useCurrentProfile", true);
628 // Enable system message
629 pref("dom.sysmsg.enabled", true);
630 pref("media.plugins.enabled", false);
631 pref("media.omx.enabled", true);
632 pref("media.rtsp.enabled", true);
633 pref("media.rtsp.video.enabled", true);
635 // Disable printing (particularly, window.print())
636 pref("dom.disable_window_print", true);
638 // Disable window.showModalDialog
639 pref("dom.disable_window_showModalDialog", true);
641 // Enable new experimental html forms
642 pref("dom.experimental_forms", true);
643 pref("dom.forms.number", true);
645 // Don't enable <input type=color> yet as we don't have a color picker
646 // implemented for b2g (bug 875751)
647 pref("dom.forms.color", false);
649 // Turns on gralloc-based direct texturing for Gonk
650 pref("gfx.gralloc.enabled", false);
652 // This preference instructs the JS engine to discard the
653 // source of any privileged JS after compilation. This saves
654 // memory, but makes things like Function.prototype.toSource()
655 // fail.
656 pref("javascript.options.discardSystemSource", true);
658 // XXXX REMOVE FOR PRODUCTION. Turns on GC and CC logging
659 pref("javascript.options.mem.log", false);
661 // Increase mark slice time from 10ms to 30ms
662 pref("javascript.options.mem.gc_incremental_slice_ms", 30);
664 // Increase time to get more high frequency GC on benchmarks from 1000ms to 1500ms
665 pref("javascript.options.mem.gc_high_frequency_time_limit_ms", 1500);
667 pref("javascript.options.mem.gc_high_frequency_heap_growth_max", 300);
668 pref("javascript.options.mem.gc_high_frequency_heap_growth_min", 120);
669 pref("javascript.options.mem.gc_high_frequency_high_limit_mb", 40);
670 pref("javascript.options.mem.gc_high_frequency_low_limit_mb", 0);
671 pref("javascript.options.mem.gc_low_frequency_heap_growth", 120);
672 pref("javascript.options.mem.high_water_mark", 6);
673 pref("javascript.options.mem.gc_allocation_threshold_mb", 1);
674 pref("javascript.options.mem.gc_decommit_threshold_mb", 1);
675 pref("javascript.options.mem.gc_min_empty_chunk_count", 1);
676 pref("javascript.options.mem.gc_max_empty_chunk_count", 2);
678 // Show/Hide scrollbars when active/inactive
679 pref("ui.showHideScrollbars", 1);
680 pref("ui.useOverlayScrollbars", 1);
681 pref("ui.scrollbarFadeBeginDelay", 450);
682 pref("ui.scrollbarFadeDuration", 200);
684 // Scrollbar position follows the document `dir` attribute
685 pref("layout.scrollbar.side", 1);
687 // Enable the ProcessPriorityManager, and give processes with no visible
688 // documents a 1s grace period before they're eligible to be marked as
689 // background. Background processes that are perceivable due to playing
690 // media are given a longer grace period to accomodate changing tracks, etc.
691 pref("dom.ipc.processPriorityManager.enabled", true);
692 pref("dom.ipc.processPriorityManager.backgroundGracePeriodMS", 1000);
693 pref("dom.ipc.processPriorityManager.backgroundPerceivableGracePeriodMS", 5000);
694 pref("dom.ipc.processPriorityManager.temporaryPriorityLockMS", 5000);
696 // Number of different background/foreground levels for background/foreground
697 // processes.  We use these different levels to force the low-memory killer to
698 // kill processes in a LRU order.
699 pref("dom.ipc.processPriorityManager.BACKGROUND.LRUPoolLevels", 5);
700 pref("dom.ipc.processPriorityManager.FOREGROUND.LRUPoolLevels", 3);
702 // Kernel parameters for process priorities.  These affect how processes are
703 // killed on low-memory and their relative CPU priorities.
705 // The kernel can only accept 6 (OomScoreAdjust, KillUnderKB) pairs. But it is
706 // okay, kernel will still kill processes with larger OomScoreAdjust first even
707 // its OomScoreAdjust don't have a corresponding KillUnderKB.
709 pref("hal.processPriorityManager.gonk.MASTER.OomScoreAdjust", 0);
710 pref("hal.processPriorityManager.gonk.MASTER.KillUnderKB", 4096);
711 pref("hal.processPriorityManager.gonk.MASTER.cgroup", "");
713 pref("hal.processPriorityManager.gonk.PREALLOC.OomScoreAdjust", 67);
714 pref("hal.processPriorityManager.gonk.PREALLOC.cgroup", "apps/bg_non_interactive");
716 pref("hal.processPriorityManager.gonk.FOREGROUND_HIGH.OomScoreAdjust", 67);
717 pref("hal.processPriorityManager.gonk.FOREGROUND_HIGH.KillUnderKB", 5120);
718 pref("hal.processPriorityManager.gonk.FOREGROUND_HIGH.cgroup", "apps/critical");
720 pref("hal.processPriorityManager.gonk.FOREGROUND.OomScoreAdjust", 134);
721 pref("hal.processPriorityManager.gonk.FOREGROUND.KillUnderKB", 6144);
722 pref("hal.processPriorityManager.gonk.FOREGROUND.cgroup", "apps");
724 pref("hal.processPriorityManager.gonk.FOREGROUND_KEYBOARD.OomScoreAdjust", 200);
725 pref("hal.processPriorityManager.gonk.FOREGROUND_KEYBOARD.cgroup", "apps");
727 pref("hal.processPriorityManager.gonk.BACKGROUND_PERCEIVABLE.OomScoreAdjust", 400);
728 pref("hal.processPriorityManager.gonk.BACKGROUND_PERCEIVABLE.KillUnderKB", 7168);
729 pref("hal.processPriorityManager.gonk.BACKGROUND_PERCEIVABLE.cgroup", "apps/bg_perceivable");
731 pref("hal.processPriorityManager.gonk.BACKGROUND_HOMESCREEN.OomScoreAdjust", 534);
732 pref("hal.processPriorityManager.gonk.BACKGROUND_HOMESCREEN.KillUnderKB", 8192);
733 pref("hal.processPriorityManager.gonk.BACKGROUND_HOMESCREEN.cgroup", "apps/bg_non_interactive");
735 pref("hal.processPriorityManager.gonk.BACKGROUND.OomScoreAdjust", 667);
736 pref("hal.processPriorityManager.gonk.BACKGROUND.KillUnderKB", 20480);
737 pref("hal.processPriorityManager.gonk.BACKGROUND.cgroup", "apps/bg_non_interactive");
739 // Control group definitions (i.e., CPU priority groups) for B2G processes.
741 // memory_swappiness -   0 - The kernel will swap only to avoid an out of memory condition
742 // memory_swappiness -  60 - The default value.
743 // memory_swappiness - 100 - The kernel will swap aggressively.
745 // Foreground apps
746 pref("hal.processPriorityManager.gonk.cgroups.apps.cpu_shares", 1024);
747 pref("hal.processPriorityManager.gonk.cgroups.apps.cpu_notify_on_migrate", 0);
748 pref("hal.processPriorityManager.gonk.cgroups.apps.memory_swappiness", 10);
750 // Foreground apps with high priority, 16x more CPU than foreground ones
751 pref("hal.processPriorityManager.gonk.cgroups.apps/critical.cpu_shares", 16384);
752 pref("hal.processPriorityManager.gonk.cgroups.apps/critical.cpu_notify_on_migrate", 0);
753 pref("hal.processPriorityManager.gonk.cgroups.apps/critical.memory_swappiness", 0);
755 // Background perceivable apps, ~10x less CPU than foreground ones
756 pref("hal.processPriorityManager.gonk.cgroups.apps/bg_perceivable.cpu_shares", 103);
757 pref("hal.processPriorityManager.gonk.cgroups.apps/bg_perceivable.cpu_notify_on_migrate", 0);
758 pref("hal.processPriorityManager.gonk.cgroups.apps/bg_perceivable.memory_swappiness", 60);
760 // Background apps, ~20x less CPU than foreground ones and ~2x less than perceivable ones
761 pref("hal.processPriorityManager.gonk.cgroups.apps/bg_non_interactive.cpu_shares", 52);
762 pref("hal.processPriorityManager.gonk.cgroups.apps/bg_non_interactive.cpu_notify_on_migrate", 0);
763 pref("hal.processPriorityManager.gonk.cgroups.apps/bg_non_interactive.memory_swappiness", 100);
765 // By default the compositor thread on gonk runs without real-time priority.  RT
766 // priority can be enabled by setting this pref to a value between 1 and 99.
767 // Note that audio processing currently runs at RT priority 2 or 3 at most.
769 // If RT priority is disabled, then the compositor nice value is used. We prefer
770 // to use a nice value of -4, which matches Android's preferences. Setting a preference
771 // of RT priority 1 would mean it is higher than audio, which is -16. The compositor
772 // priority must be below the audio thread.
774 // Do not change these values without gfx team review.
775 pref("hal.gonk.COMPOSITOR.rt_priority", 0);
776 pref("hal.gonk.COMPOSITOR.nice", -4);
778 // Fire a memory pressure event when the system has less than Xmb of memory
779 // remaining.  You should probably set this just above Y.KillUnderKB for
780 // the highest priority class Y that you want to make an effort to keep alive.
781 // (For example, we want BACKGROUND_PERCEIVABLE to stay alive.)  If you set
782 // this too high, then we'll send out a memory pressure event every Z seconds
783 // (see below), even while we have processes that we would happily kill in
784 // order to free up memory.
785 pref("hal.processPriorityManager.gonk.notifyLowMemUnderKB", 14336);
787 // We wait this long before polling the memory-pressure fd after seeing one
788 // memory pressure event.  (When we're not under memory pressure, we sit
789 // blocked on a poll(), and this pref has no effect.)
790 pref("gonk.systemMemoryPressureRecoveryPollMS", 5000);
792 #ifndef DEBUG
793 // Enable pre-launching content processes for improved startup time
794 // (hiding latency).
795 pref("dom.ipc.processPrelaunch.enabled", true);
796 // Wait this long before pre-launching a new subprocess.
797 pref("dom.ipc.processPrelaunch.delayMs", 5000);
798 #endif
800 pref("dom.ipc.reuse_parent_app", false);
802 // When a process receives a system message, we hold a CPU wake lock on its
803 // behalf for this many seconds, or until it handles the system message,
804 // whichever comes first.
805 pref("dom.ipc.systemMessageCPULockTimeoutSec", 30);
807 // Ignore the "dialog=1" feature in window.open.
808 pref("dom.disable_window_open_dialog_feature", true);
810 // Enable before keyboard events and after keyboard events.
811 pref("dom.beforeAfterKeyboardEvent.enabled", true);
813 // Screen reader support
814 pref("accessibility.accessfu.activate", 2);
815 pref("accessibility.accessfu.quicknav_modes", "Link,Heading,FormElement,Landmark,ListItem");
816 // Active quicknav mode, index value of list from quicknav_modes
817 pref("accessibility.accessfu.quicknav_index", 0);
818 // Setting for an utterance order (0 - description first, 1 - description last).
819 pref("accessibility.accessfu.utterance", 1);
820 // Whether to skip images with empty alt text
821 pref("accessibility.accessfu.skip_empty_images", true);
822 // Setting to change the verbosity of entered text (0 - none, 1 - characters,
823 // 2 - words, 3 - both)
824 pref("accessibility.accessfu.keyboard_echo", 3);
826 // Enable hit-target fluffing
827 pref("ui.touch.radius.enabled", true);
828 pref("ui.touch.radius.leftmm", 3);
829 pref("ui.touch.radius.topmm", 5);
830 pref("ui.touch.radius.rightmm", 3);
831 pref("ui.touch.radius.bottommm", 2);
833 pref("ui.mouse.radius.enabled", true);
834 pref("ui.mouse.radius.leftmm", 3);
835 pref("ui.mouse.radius.topmm", 5);
836 pref("ui.mouse.radius.rightmm", 3);
837 pref("ui.mouse.radius.bottommm", 2);
839 // Disable native prompt
840 pref("browser.prompt.allowNative", false);
842 // Minimum delay in milliseconds between network activity notifications (0 means
843 // no notifications). The delay is the same for both download and upload, though
844 // they are handled separately. This pref is only read once at startup:
845 // a restart is required to enable a new value.
846 pref("network.activity.blipIntervalMilliseconds", 250);
848 // By default we want the NetworkManager service to manage Gecko's offline
849 // status for us according to the state of Wifi/cellular data connections.
850 // In some environments, such as the emulator or hardware with other network
851 // connectivity, this is not desireable, however, in which case this pref
852 // can be flipped to false.
853 pref("network.gonk.manage-offline-status", true);
855 // On Firefox Mulet, we can't enable shared JSM scope
856 // as it breaks most Firefox JSMs (see bug 961777)
857 #ifndef MOZ_MULET
858 // Break any JSMs or JS components that rely on shared scope
859 #ifndef DEBUG
860 pref("jsloader.reuseGlobal", true);
861 #endif
862 #endif
864 // Enable font inflation for browser tab content.
865 pref("font.size.inflation.minTwips", 120);
866 // And disable it for lingering master-process UI.
867 pref("font.size.inflation.disabledInMasterProcess", true);
869 // Enable freeing dirty pages when minimizing memory; this reduces memory
870 // consumption when applications are sent to the background.
871 pref("memory.free_dirty_pages", true);
873 // Enable the Linux-specific, system-wide memory reporter.
874 pref("memory.system_memory_reporter", true);
876 // Don't dump memory reports on OOM, by default.
877 pref("memory.dump_reports_on_oom", false);
879 pref("layout.imagevisibility.numscrollportwidths", 1);
880 pref("layout.imagevisibility.numscrollportheights", 1);
882 // Enable native identity (persona/browserid)
883 pref("dom.identity.enabled", true);
885 // Wait up to this much milliseconds when orientation changed
886 pref("layers.orientation.sync.timeout", 1000);
888 // Animate the orientation change
889 pref("b2g.orientation.animate", true);
891 // Don't discard WebGL contexts for foreground apps on memory
892 // pressure.
893 pref("webgl.can-lose-context-in-foreground", false);
895 // Allow nsMemoryInfoDumper to create a fifo in the temp directory.  We use
896 // this fifo to trigger about:memory dumps, among other things.
897 pref("memory_info_dumper.watch_fifo.enabled", true);
898 pref("memory_info_dumper.watch_fifo.directory", "/data/local");
900 // See ua-update.json.in for the packaged UA override list
901 pref("general.useragent.updates.enabled", true);
902 pref("general.useragent.updates.url", "https://dynamicua.cdn.mozilla.net/0/%APP_ID%");
903 pref("general.useragent.updates.interval", 604800); // 1 week
904 pref("general.useragent.updates.retry", 86400); // 1 day
905 // Device ID can be composed of letter, numbers, hyphen ("-") and dot (".")
906 pref("general.useragent.device_id", "");
908 // Make <audio> and <video> talk to the AudioChannelService.
909 pref("media.useAudioChannelService", true);
911 pref("b2g.version", @MOZ_B2G_VERSION@);
912 pref("b2g.osName", @MOZ_B2G_OS_NAME@);
914 // Disable console buffering to save memory.
915 pref("consoleservice.buffered", false);
917 #ifdef MOZ_WIDGET_GONK
918 // Performance testing suggests 2k is a better page size for SQLite.
919 pref("toolkit.storage.pageSize", 2048);
920 #endif
922 // Enable captive portal detection.
923 pref("captivedetect.canonicalURL", "http://detectportal.firefox.com/success.txt");
924 pref("captivedetect.canonicalContent", "success\n");
926 // The url of the manifest we use for ADU pings.
927 pref("ping.manifestURL", "https://marketplace.firefox.com/packaged.webapp");
929 // Enable the disk space watcher
930 pref("disk_space_watcher.enabled", true);
932 // SNTP preferences.
933 pref("network.sntp.maxRetryCount", 10);
934 pref("network.sntp.refreshPeriod", 86400); // In seconds.
935 pref("network.sntp.pools", // Servers separated by ';'.
936      "0.pool.ntp.org;1.pool.ntp.org;2.pool.ntp.org;3.pool.ntp.org");
937 pref("network.sntp.port", 123);
938 pref("network.sntp.timeout", 30); // In seconds.
940 // Enable dataStore
941 pref("dom.datastore.enabled", true);
942 // When an entry is changed, use two timers to fire system messages in a more
943 // moderate pattern.
944 pref("dom.datastore.sysMsgOnChangeShortTimeoutSec", 10);
945 pref("dom.datastore.sysMsgOnChangeLongTimeoutSec", 60);
947 // DOM Inter-App Communication API.
948 pref("dom.inter-app-communication-api.enabled", true);
950 // Allow ADB to run for this many hours before disabling
951 // (only applies when marionette is disabled)
952 // 0 disables the timer.
953 pref("b2g.adb.timeout-hours", 12);
955 // InputMethod so we can do soft keyboards
956 pref("dom.mozInputMethod.enabled", true);
958 // Absolute path to the devtool unix domain socket file used
959 // to communicate with a usb cable via adb forward
960 pref("devtools.debugger.unix-domain-socket", "/data/local/debugger-socket");
962 // enable Skia/GL (OpenGL-accelerated 2D drawing) for large enough 2d canvases,
963 // falling back to Skia/software for smaller canvases
964 #ifdef MOZ_WIDGET_GONK
965 pref("gfx.canvas.azure.backends", "skia");
966 pref("gfx.canvas.azure.accelerated", true);
967 #endif
969 // Turn on dynamic cache size for Skia
970 pref("gfx.canvas.skiagl.dynamic-cache", true);
972 // Limit skia to canvases the size of the device screen or smaller
973 pref("gfx.canvas.max-size-for-skia-gl", -1);
975 // enable fence with readpixels for SurfaceStream
976 pref("gfx.gralloc.fence-with-readpixels", true);
978 // The url of the page used to display network error details.
979 pref("b2g.neterror.url", "app://system.gaiamobile.org/net_error.html");
981 // The origin used for the shared themes uri space.
982 pref("b2g.theme.origin", "app://theme.gaiamobile.org");
983 pref("dom.mozApps.themable", true);
984 pref("dom.mozApps.selected_theme", "default_theme.gaiamobile.org");
986 // Enable Web Speech synthesis API
987 pref("media.webspeech.synth.enabled", true);
989 // Downloads API
990 pref("dom.mozDownloads.enabled", true);
991 pref("dom.downloads.max_retention_days", 7);
993 // External Helper Application Handling
995 // All external helper application handling can require the docshell to be
996 // active before allowing the external helper app service to handle content.
998 // To prevent SD card DoS attacks via downloads we disable background handling.
1000 pref("security.exthelperapp.disable_background_handling", true);
1002 // Inactivity time in milliseconds after which we shut down the OS.File worker.
1003 pref("osfile.reset_worker_delay", 5000);
1005 // APZC preferences.
1007 // Gaia relies heavily on scroll events for now, so lets fire them
1008 // more often than the default value (100).
1009 pref("apz.asyncscroll.throttle", 40);
1010 pref("apz.pan_repaint_interval", 16);
1012 // APZ physics settings, tuned by UX designers
1013 pref("apz.fling_curve_function_x1", "0.41");
1014 pref("apz.fling_curve_function_y1", "0.0");
1015 pref("apz.fling_curve_function_x2", "0.80");
1016 pref("apz.fling_curve_function_y2", "1.0");
1017 pref("apz.fling_curve_threshold_inches_per_ms", "0.01");
1018 pref("apz.fling_friction", "0.0019");
1019 pref("apz.max_velocity_inches_per_ms", "0.07");
1021 // Tweak default displayport values to reduce the risk of running out of
1022 // memory when zooming in
1023 pref("apz.x_skate_size_multiplier", "1.25");
1024 pref("apz.y_skate_size_multiplier", "1.5");
1025 pref("apz.x_stationary_size_multiplier", "1.5");
1026 pref("apz.y_stationary_size_multiplier", "1.8");
1027 pref("apz.enlarge_displayport_when_clipped", true);
1028 // Use "sticky" axis locking
1029 pref("apz.axis_lock.mode", 2);
1030 pref("apz.subframe.enabled", true);
1032 // Overscroll-related settings
1033 pref("apz.overscroll.enabled", true);
1034 pref("apz.overscroll.stretch_factor", "0.35");
1035 pref("apz.overscroll.spring_stiffness", "0.0018");
1036 pref("apz.overscroll.spring_friction", "0.015");
1037 pref("apz.overscroll.stop_distance_threshold", "5.0");
1038 pref("apz.overscroll.stop_velocity_threshold", "0.01");
1040 // For event-regions based hit-testing
1041 pref("layout.event-regions.enabled", true);
1043 // This preference allows FirefoxOS apps (and content, I think) to force
1044 // the use of software (instead of hardware accelerated) 2D canvases by
1045 // creating a context like this:
1047 //   canvas.getContext('2d', { willReadFrequently: true })
1049 // Using a software canvas can save memory when JS calls getImageData()
1050 // on the canvas frequently. See bug 884226.
1051 pref("gfx.canvas.willReadFrequently.enable", true);
1053 // Disable autofocus until we can have it not bring up the keyboard.
1054 // https://bugzilla.mozilla.org/show_bug.cgi?id=965763
1055 pref("browser.autofocus", false);
1057 // Enable wakelock
1058 pref("dom.wakelock.enabled", true);
1060 // Disable webapps add-ons
1061 pref("dom.apps.customization.enabled", false);
1063 // Enable touch caret by default
1064 pref("touchcaret.enabled", true);
1066 // Enable selection caret by default
1067 pref("selectioncaret.enabled", true);
1069 // Enable sync and mozId with Firefox Accounts.
1070 pref("services.sync.fxaccounts.enabled", true);
1071 pref("identity.fxaccounts.enabled", true);
1073 // Mobile Identity API.
1074 pref("services.mobileid.server.uri", "https://msisdn.services.mozilla.com");
1076 // Enable mapped array buffer.
1077 #ifndef XP_WIN
1078 pref("dom.mapped_arraybuffer.enabled", true);
1079 #endif
1081 // UDPSocket API
1082 pref("dom.udpsocket.enabled", true);
1084 // Enable TV Manager API
1085 pref("dom.tv.enabled", true);
1087 pref("dom.mozSettings.SettingsDB.debug.enabled", true);
1088 pref("dom.mozSettings.SettingsManager.debug.enabled", true);
1089 pref("dom.mozSettings.SettingsRequestManager.debug.enabled", true);
1090 pref("dom.mozSettings.SettingsService.debug.enabled", true);
1092 pref("dom.mozSettings.SettingsDB.verbose.enabled", false);
1093 pref("dom.mozSettings.SettingsManager.verbose.enabled", false);
1094 pref("dom.mozSettings.SettingsRequestManager.verbose.enabled", false);
1095 pref("dom.mozSettings.SettingsService.verbose.enabled", false);
1097 // Controlling whether we want to allow forcing some Settings
1098 // IndexedDB transactions to be opened as readonly or keep everything as
1099 // readwrite.
1100 pref("dom.mozSettings.allowForceReadOnly", false);
1102 // RequestSync API is enabled by default on B2G.
1103 pref("dom.requestSync.enabled", true);
1105 // Only enable for kit kat and above devices
1106 // kit kat == 19, L = 21, 20 is kit-kat for wearables
1107 // 15 is for the ICS emulators which will fallback to software vsync
1108 #if ANDROID_VERSION == 19 || ANDROID_VERSION == 21 || ANDROID_VERSION == 15
1109 pref("gfx.vsync.hw-vsync.enabled", true);
1110 pref("gfx.vsync.compositor", true);
1111 pref("gfx.touch.resample", true);
1112 #else
1113 pref("gfx.vsync.hw-vsync.enabled", false);
1114 pref("gfx.vsync.compositor", false);
1115 pref("gfx.touch.resample", false);
1116 #endif
1118 // Bug 1147753 - Weird issues with vsync refresh driver on L devices
1119 // so disable them on L, but enable on KK and ICS
1120 #if ANDROID_VERSION == 19 || ANDROID_VERSION == 15
1121 pref("gfx.vsync.refreshdriver", true);
1122 #else
1123 pref("gfx.vsync.refreshdriver", false);
1124 #endif