Bug 1460912 - [testing/profiles] Use the 'common' profile in reftest draft
authorAndrew Halberstadt <ahalberstadt@mozilla.com>
Mon, 14 May 2018 10:56:41 -0400
changeset 796548 e4601ada0b369da57394b2b10ac25f2bbe3fd4b6
parent 796547 ff1259c5f7a42b8f92a445f8515d36dd09eade6c
push id110278
push userahalberstadt@mozilla.com
push dateThu, 17 May 2018 19:42:43 +0000
bugs1460912
milestone62.0a1
Bug 1460912 - [testing/profiles] Use the 'common' profile in reftest This removes prefs that are already shared between reftest and the 'common' profile from: testing/profiles/reftest/user.js And moves prefs that were set in the 'common' profile but not reftest to both: testing/profiles/unittest/user.js testing/profiles/perf/user.js MozReview-Commit-ID: HLfVrd2eD0l
testing/profiles/common/user.js
testing/profiles/perf/user.js
testing/profiles/profiles.json
testing/profiles/reftest/user.js
testing/profiles/unittest/user.js
--- a/testing/profiles/common/user.js
+++ b/testing/profiles/common/user.js
@@ -1,66 +1,39 @@
 // Base preferences file used by both unittest and perf harnesses.
 /* globals user_pref */
 user_pref("app.update.enabled", false);
-user_pref("browser.EULA.override", true);
-// Disable Bookmark backups by default.
-user_pref("browser.bookmarks.max_backups", 0);
 user_pref("browser.dom.window.dump.enabled", true);
 // Use an empty list of sites to avoid fetching
-user_pref("browser.newtabpage.activity-stream.default.sites", "");
 user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
 user_pref("browser.newtabpage.activity-stream.feeds.snippets", false);
-user_pref("browser.newtabpage.activity-stream.telemetry", false);
 user_pref("browser.newtabpage.activity-stream.tippyTop.service.endpoint", "");
 user_pref("browser.search.countryCode", "US");
 // This will prevent HTTP requests for region defaults.
 user_pref("browser.search.geoSpecificDefaults", false);
 // Tell the search service we are running in the US.  This also has the desired
 // side-effect of preventing our geoip lookup.
 user_pref("browser.search.isUS", true);
-user_pref("browser.shell.checkDefaultBrowser", false);
 // Disable android snippets
 user_pref("browser.snippets.enabled", false);
 user_pref("browser.snippets.syncPromo.enabled", false);
-// Turn off the location bar search suggestions opt-in.  It interferes with
-// tests that don't expect it to be there.
-user_pref("browser.urlbar.userMadeSearchSuggestionsChoice", true);
-user_pref("browser.warnOnQuit", false);
 // Disable webapp updates.  Yes, it is supposed to be an integer.
 user_pref("browser.webapps.checkForUpdates", 0);
 // We do not wish to display datareporting policy notifications as it might
 // cause other tests to fail. Tests that wish to test the notification functionality
 // should explicitly disable this pref.
 user_pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true);
-user_pref("devtools.chrome.enabled", false);
-user_pref("devtools.debugger.remote-enabled", false);
-user_pref("dom.allow_scripts_to_close_windows", true);
-user_pref("dom.disable_open_during_load", false);
 user_pref("dom.max_chrome_script_run_time", 0);
 user_pref("dom.max_script_run_time", 0); // no slow script dialogs
 user_pref("dom.send_after_paint_to_content", true);
 // Only load extensions from the application and user profile
 // AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_APPLICATION
 user_pref("extensions.enabledScopes", 5);
 user_pref("extensions.legacy.enabled", true);
 // Turn off extension updates so they don't bother tests
 user_pref("extensions.update.enabled", false);
 // Disable useragent updates.
 user_pref("general.useragent.updates.enabled", false);
 user_pref("hangmonitor.timeout", 0); // no hang monitor
-// Make tests run consistently on DevEdition (which has a lightweight theme
-// selected by default).
-user_pref("lightweightThemes.selectedThemeID", "");
 user_pref("media.gmp-manager.updateEnabled", false);
-// Don't block old libavcodec libraries when testing, because our test systems
-// cannot easily be upgraded.
-user_pref("media.libavcodec.allow-obsolete", true);
-// Disable speculative connections so they aren't reported as leaking when they're hanging around.
-user_pref("network.http.speculative-parallel-limit", 0);
-// Set places maintenance far in the future (the maximum time possible in an
-// int32_t) to avoid it kicking in during tests. The maintenance can take a
-// relatively long time which may cause unnecessary intermittents and slow down
-// tests. This, like many things, will stop working correctly in 2038.
-user_pref("places.database.lastMaintenance", 2147483647);
 // Make enablePrivilege continue to work for test code. :-(
 user_pref("security.turn_off_all_security_so_that_viruses_can_take_over_this_computer", true);
 user_pref("xpinstall.signatures.required", false);
--- a/testing/profiles/perf/user.js
+++ b/testing/profiles/perf/user.js
@@ -1,43 +1,57 @@
 // Base preferences file used by performance harnesses
 /* globals user_pref */
 user_pref("app.normandy.api_url", "https://127.0.0.1/selfsupport-dummy/");
+user_pref("browser.EULA.override", true);
 user_pref("browser.aboutHomeSnippets.updateUrl", "https://127.0.0.1/about-dummy/");
 user_pref("browser.addon-watch.interval", -1); // Deactivate add-on watching
+// Disable Bookmark backups by default.
+user_pref("browser.bookmarks.max_backups", 0);
 user_pref("browser.cache.disk.smart_size.enabled", false);
 user_pref("browser.cache.disk.smart_size.first_run", false);
 user_pref("browser.chrome.dynamictoolbar", false);
 user_pref("browser.contentHandlers.types.0.uri", "http://127.0.0.1/rss?url=%s");
 user_pref("browser.contentHandlers.types.1.uri", "http://127.0.0.1/rss?url=%s");
 user_pref("browser.contentHandlers.types.2.uri", "http://127.0.0.1/rss?url=%s");
 user_pref("browser.contentHandlers.types.3.uri", "http://127.0.0.1/rss?url=%s");
 user_pref("browser.contentHandlers.types.4.uri", "http://127.0.0.1/rss?url=%s");
 user_pref("browser.contentHandlers.types.5.uri", "http://127.0.0.1/rss?url=%s");
 user_pref("browser.link.open_newwindow", 2);
+user_pref("browser.newtabpage.activity-stream.default.sites", "");
+user_pref("browser.newtabpage.activity-stream.telemetry", false);
 user_pref("browser.ping-centre.production.endpoint", "https://127.0.0.1/pingcentre/dummy/");
 user_pref("browser.ping-centre.staging.endpoint", "https://127.0.0.1/pingcentre/dummy/");
 user_pref("browser.reader.detectedFirstArticle", true);
 user_pref("browser.safebrowsing.blockedURIs.enabled", false);
 user_pref("browser.safebrowsing.downloads.enabled", false);
 user_pref("browser.safebrowsing.downloads.remote.url", "http://127.0.0.1/safebrowsing-dummy/downloads");
 user_pref("browser.safebrowsing.malware.enabled", false);
 user_pref("browser.safebrowsing.passwords.enabled", false);
 user_pref("browser.safebrowsing.phishing.enabled", false);
 user_pref("browser.safebrowsing.provider.google.gethashURL", "http://127.0.0.1/safebrowsing-dummy/gethash");
 user_pref("browser.safebrowsing.provider.google.updateURL", "http://127.0.0.1/safebrowsing-dummy/update");
 user_pref("browser.safebrowsing.provider.google4.gethashURL", "http://127.0.0.1/safebrowsing4-dummy/gethash");
 user_pref("browser.safebrowsing.provider.google4.updateURL", "http://127.0.0.1/safebrowsing4-dummy/update");
 user_pref("browser.safebrowsing.provider.mozilla.gethashURL", "http://127.0.0.1/safebrowsing-dummy/gethash");
 user_pref("browser.safebrowsing.provider.mozilla.updateURL", "http://127.0.0.1/safebrowsing-dummy/update");
 user_pref("browser.search.geoip.url", "");
+user_pref("browser.shell.checkDefaultBrowser", false);
 user_pref("browser.tabs.remote.autostart", true);
+// Turn off the location bar search suggestions opt-in.  It interferes with
+// tests that don't expect it to be there.
+user_pref("browser.urlbar.userMadeSearchSuggestionsChoice", true);
+user_pref("browser.warnOnQuit", false);
 user_pref("datareporting.healthreport.documentServerURI", "http://127.0.0.1/healthreport/");
+user_pref("devtools.chrome.enabled", false);
+user_pref("devtools.debugger.remote-enabled", false);
 user_pref("devtools.theme", "light");
 user_pref("devtools.timeline.enabled", false);
+user_pref("dom.allow_scripts_to_close_windows", true);
+user_pref("dom.disable_open_during_load", false);
 user_pref("dom.disable_window_flip", true);
 user_pref("dom.disable_window_move_resize", true);
 user_pref("extensions.autoDisableScopes", 10);
 user_pref("extensions.blocklist.enabled", false);
 user_pref("extensions.blocklist.url", "http://127.0.0.1/extensions-dummy/blocklistURL");
 user_pref("extensions.checkCompatibility", false);
 user_pref("extensions.getAddons.get.url", "http://127.0.0.1/extensions-dummy/repositoryGetURL");
 user_pref("extensions.getAddons.getWithPerformance.url", "http://127.0.0.1/extensions-dummy/repositoryGetWithPerformanceURL");
@@ -45,24 +59,37 @@ user_pref("extensions.getAddons.search.b
 user_pref("extensions.hotfix.url", "http://127.0.0.1/extensions-dummy/hotfixURL");
 user_pref("extensions.systemAddon.update.url", "http://127.0.0.1/dummy-system-addons.xml");
 user_pref("extensions.update.background.url", "http://127.0.0.1/extensions-dummy/updateBackgroundURL");
 user_pref("extensions.update.notifyUser", false);
 user_pref("extensions.update.url", "http://127.0.0.1/extensions-dummy/updateURL");
 user_pref("extensions.webservice.discoverURL", "http://127.0.0.1/extensions-dummy/discoveryURL");
 user_pref("identity.fxaccounts.auth.uri", "https://127.0.0.1/fxa-dummy/");
 user_pref("identity.fxaccounts.migrateToDevEdition", false);
+// Make tests run consistently on DevEdition (which has a lightweight theme
+// selected by default).
+user_pref("lightweightThemes.selectedThemeID", "");
 user_pref("media.capturestream_hints.enabled", true);
 user_pref("media.gmp-manager.url", "http://127.0.0.1/gmpmanager-dummy/update.xml");
+// Don't block old libavcodec libraries when testing, because our test systems
+// cannot easily be upgraded.
+user_pref("media.libavcodec.allow-obsolete", true);
 user_pref("media.navigator.enabled", true);
 user_pref("media.navigator.permission.disabled", true);
 user_pref("media.peerconnection.enabled", true);
+// Disable speculative connections so they aren't reported as leaking when they're hanging around.
+user_pref("network.http.speculative-parallel-limit", 0);
 user_pref("network.proxy.http", "localhost");
 user_pref("network.proxy.http_port", 80);
 user_pref("network.proxy.type", 1);
+// Set places maintenance far in the future (the maximum time possible in an
+// int32_t) to avoid it kicking in during tests. The maintenance can take a
+// relatively long time which may cause unnecessary intermittents and slow down
+// tests. This, like many things, will stop working correctly in 2038.
+user_pref("places.database.lastMaintenance", 2147483647);
 user_pref("plugin.state.flash", 0);
 user_pref("plugins.flashBlock.enabled", false);
 user_pref("privacy.reduceTimerPrecision", false); // Bug 1445243 - reduces precision of tests
 user_pref("privacy.trackingprotection.annotate_channels", false);
 user_pref("privacy.trackingprotection.enabled", false);
 user_pref("privacy.trackingprotection.introURL", "http://127.0.0.1/trackingprotection/tour");
 user_pref("privacy.trackingprotection.pbmode.enabled", false);
 user_pref("security.enable_java", false);
--- a/testing/profiles/profiles.json
+++ b/testing/profiles/profiles.json
@@ -1,9 +1,9 @@
 {
     "mochitest": ["common", "unittest"],
     "profileserver": ["common", "unittest"],
     "raptor": ["common", "perf", "raptor"],
-    "reftest": ["reftest"],
+    "reftest": ["common", "reftest"],
     "talos": ["common", "perf"],
     "valgrind": ["common", "unittest"],
     "web-platform-tests": ["common", "unittest"]
 }
--- a/testing/profiles/reftest/user.js
+++ b/testing/profiles/reftest/user.js
@@ -1,21 +1,14 @@
 // Preference file for the reftest harness.
 /* globals user_pref */
 // Make sure Shield doesn't hit the network.
 user_pref("app.normandy.api_url", "https://localhost/selfsupport-dummy/");
-// Disable updates
-user_pref("app.update.enabled", false);
 user_pref("app.update.staging.enabled", false);
 user_pref("app.update.url.android", "");
-user_pref("browser.dom.window.dump.enabled", true);
-// Make sure we don't reach out to the network for activity stream services
-user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
-user_pref("browser.newtabpage.activity-stream.feeds.snippets", false);
-user_pref("browser.newtabpage.activity-stream.tippyTop.service.endpoint", "");
 // Disable the thumbnailing service
 user_pref("browser.pagethumbnails.capturing_disabled", true);
 user_pref("browser.ping-centre.production.endpoint", "https://localhost");
 // Make sure Ping Centre doesn't hit the network.
 user_pref("browser.ping-centre.staging.endpoint", "https://localhost");
 user_pref("browser.safebrowsing.blockedURIs.enabled", false);
 user_pref("browser.safebrowsing.downloads.enabled", false);
 user_pref("browser.safebrowsing.downloads.remote.url", "http://127.0.0.1/safebrowsing-dummy/gethash");
@@ -24,68 +17,42 @@ user_pref("browser.safebrowsing.password
 // Likewise for safebrowsing.
 user_pref("browser.safebrowsing.phishing.enabled", false);
 user_pref("browser.safebrowsing.provider.google.gethashURL", "http://127.0.0.1/safebrowsing-dummyg/gethash");
 user_pref("browser.safebrowsing.provider.google.updateURL", "http://127.0.0.1/safebrowsing-dummyg/update");
 user_pref("browser.safebrowsing.provider.google4.gethashURL", "http://127.0.0.1/safebrowsing-dummyg4/gethash");
 user_pref("browser.safebrowsing.provider.google4.updateURL", "http://127.0.0.1/safebrowsing-dummyg4/update");
 user_pref("browser.safebrowsing.provider.mozilla.gethashURL", "http://127.0.0.1/safebrowsing-dummym/gethash");
 user_pref("browser.safebrowsing.provider.mozilla.updateURL", "http://127.0.0.1/safebrowsing-dummym/update");
-user_pref("browser.search.countryCode", "US");
-user_pref("browser.search.geoSpecificDefaults", false);
-// Tell the search service we are running in the US.  This also has the
-// desired side-effect of preventing our geoip lookup.
-user_pref("browser.search.isUS", true);
-// And for snippets.
-user_pref("browser.snippets.enabled", false);
 user_pref("browser.snippets.firstrunHomepage.enabled", false);
-user_pref("browser.snippets.syncPromo.enabled", false);
 // use about:blank, not browser.startup.homepage
 user_pref("browser.startup.page", 0);
 // Since our tests are 800px wide, set the assume-designed-for width of all
 // pages to be 800px (instead of the default of 980px). This ensures that
 // in our 800px window we don't zoom out by default to try to fit the
 // assumed 980px content.
 user_pref("browser.viewport.desktopWidth", 800);
-// And for webapp updates.  Yes, it is supposed to be an integer.
-user_pref("browser.webapps.checkForUpdates", 0);
 user_pref("datareporting.healthreport.uploadEnabled", false);
-// Skip data reporting policy notifications.
-user_pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true);
 // Allow XUL and XBL files to be opened from file:// URIs
 user_pref("dom.allow_XUL_XBL_for_file", true);
 // Don't forcibly kill content processes after a timeout
 user_pref("dom.ipc.tabs.shutdownTimeoutSecs", 0);
-user_pref("dom.max_chrome_script_run_time", 0);
-// no slow script dialogs
-user_pref("dom.max_script_run_time", 0);
-user_pref("dom.send_after_paint_to_content", true);
 // For mochitests, we're more interested in testing the behavior of in-
 // content XBL bindings, so we set this pref to true. In reftests, we're
 // more interested in testing the behavior of XBL as it works in chrome,
 // so we want this pref to be false.
 user_pref("dom.use_xbl_scopes_for_remote_xul", false);
 user_pref("extensions.autoDisableScopes", 0);
 // Disable blocklist updates so we don't have them reported as leaks
 user_pref("extensions.blocklist.enabled", false);
-// Only allow add-ons from the profile and app and allow foreign
-// injection
-user_pref("extensions.enabledScopes", 5);
 user_pref("extensions.getAddons.cache.enabled", false);
-// Ensure we can load the reftest extension
-user_pref("extensions.legacy.enabled", true);
 user_pref("extensions.systemAddon.update.url", "http://localhost/dummy-system-addons.xml");
-// Disable addon updates and prefetching so we don't leak them
-user_pref("extensions.update.enabled", false);
-// And for useragent updates.
-user_pref("general.useragent.updates.enabled", false);
 user_pref("gfx.color_management.force_srgb", true);
 user_pref("gfx.color_management.mode", 2);
 user_pref("gfx.logging.level", 1);
-user_pref("hangmonitor.timeout", 0);
 // Disable downscale-during-decode, since it makes reftests more difficult.
 user_pref("image.downscale-during-decode.enabled", false);
 // Disable interruptible reflow since (1) it's normally not going to
 // happen, but (2) it might happen if we somehow end up with both
 // pending user events and clock skew.  So to avoid having to change
 // MakeProgress to deal with waiting for interruptible reflows to
 // complete for a rare edge case, we just disable interruptible
 // reflow so that that rare edge case doesn't lead to reftest
@@ -96,17 +63,16 @@ user_pref("layout.interruptible-reflow.e
 // during the fade.
 user_pref("layout.testing.overlay-scrollbars.always-visible", true);
 // Disable all recommended Marionette preferences for Gecko tests.
 // The prefs recommended by Marionette are typically geared towards
 // consumer automation; not vendor testing.
 user_pref("marionette.prefs.recommended", false);
 // Ensure autoplay is enabled for all platforms.
 user_pref("media.autoplay.enabled", true);
-user_pref("media.gmp-manager.updateEnabled", false);
 user_pref("media.gmp-manager.url.override", "http://localhost/dummy-gmp-manager.xml");
 user_pref("media.openUnsupportedTypeWithExternalApp", false);
 // Reftests load a lot of URLs very quickly. This puts avoidable and
 // unnecessary I/O pressure on the Places DB (measured to be in the
 // gigabytes).
 user_pref("places.history.enabled", false);
 // For Firefox 52 only, ESR will support non-Flash plugins while release will
 // not, so we keep testing the non-Flash pathways
@@ -117,25 +83,22 @@ user_pref("plugins.show_infobar", false)
 user_pref("privacy.trackingprotection.annotate_channels", false);
 user_pref("privacy.trackingprotection.enabled", false);
 user_pref("privacy.trackingprotection.pbmode.enabled", false);
 // Checking whether two files are the same is slow on Windows.
 // Setting this pref makes tests run much faster there. Reftests also
 // rely on this to load downloadable fonts (which are restricted to same
 // origin policy by default) from outside their directory.
 user_pref("security.fileuri.strict_origin_policy", false);
-user_pref("security.turn_off_all_security_so_that_viruses_can_take_over_this_computer", true);
 // Allow view-source URIs to be opened from URIs that share
 // their protocol with the inner URI of the view-source URI
 user_pref("security.view-source.reachable-from-inner-protocol", true);
 user_pref("startup.homepage_override_url", "");
 user_pref("startup.homepage_welcome_url", "");
 user_pref("startup.homepage_welcome_url.additional", "");
 // A fake bool pref for "@supports -moz-bool-pref" sanify test.
 user_pref("testing.supports.moz-bool-pref", false);
 // Ensure that telemetry is disabled, so we don't connect to the telemetry
 // server in the middle of the tests.
 user_pref("toolkit.telemetry.enabled", false);
 user_pref("toolkit.telemetry.server", "https://%(server)s/telemetry-dummy/");
 user_pref("ui.caretBlinkTime", -1);
 user_pref("ui.caretWidth", 1);
-// Allow unsigned add-ons
-user_pref("xpinstall.signatures.required", false);
--- a/testing/profiles/unittest/user.js
+++ b/testing/profiles/unittest/user.js
@@ -9,32 +9,37 @@ user_pref("app.update.staging.enabled", 
 user_pref("app.update.url.android", "");
 // Increase the APZ content response timeout in tests to 1 minute.
 // This is to accommodate the fact that test environments tends to be slower
 // than production environments (with the b2g emulator being the slowest of them
 // all), resulting in the production timeout value sometimes being exceeded
 // and causing false-positive test failures. See bug 1176798, bug 1177018,
 // bug 1210465.
 user_pref("apz.content_response_timeout", 60000);
+user_pref("browser.EULA.override", true);
 // Make sure we don't try to load snippets from the network.
 user_pref("browser.aboutHomeSnippets.updateUrl", "nonexistent://test");
+// Disable Bookmark backups by default.
+user_pref("browser.bookmarks.max_backups", 0);
 user_pref("browser.console.showInPanel", true);
 // Don't connect to Yahoo! for RSS feed tests.
 // en-US only uses .types.0.uri, but set all of them just to be sure.
 user_pref("browser.contentHandlers.types.0.uri", "http://test1.example.org/rss?url=%s");
 user_pref("browser.contentHandlers.types.1.uri", "http://test1.example.org/rss?url=%s");
 user_pref("browser.contentHandlers.types.2.uri", "http://test1.example.org/rss?url=%s");
 user_pref("browser.contentHandlers.types.3.uri", "http://test1.example.org/rss?url=%s");
 user_pref("browser.contentHandlers.types.4.uri", "http://test1.example.org/rss?url=%s");
 user_pref("browser.contentHandlers.types.5.uri", "http://test1.example.org/rss?url=%s");
 // Indicate that the download panel has been shown once so that whichever
 // download test runs first doesn't show the popup inconsistently.
 user_pref("browser.download.panel.shown", true);
 user_pref("browser.firstrun.show.localepicker", false);
 user_pref("browser.firstrun.show.uidiscovery", false);
+user_pref("browser.newtabpage.activity-stream.default.sites", "");
+user_pref("browser.newtabpage.activity-stream.telemetry", false);
 // Background thumbnails in particular cause grief, and disabling thumbnails
 // in general can't hurt - we re-enable them when tests need them.
 user_pref("browser.pagethumbnails.capturing_disabled", true);
 user_pref("browser.ping-centre.production.endpoint", "");
 // Make sure PingCentre doesn't hit the network.
 user_pref("browser.ping-centre.staging.endpoint", "");
 // Point the url-classifier to the local testing server for fast failures
 user_pref("browser.safebrowsing.downloads.remote.url", "http://{server}/safebrowsing-dummy/update");
@@ -42,16 +47,17 @@ user_pref("browser.safebrowsing.provider
 user_pref("browser.safebrowsing.provider.google.updateURL", "http://{server}/safebrowsing-dummy/update");
 user_pref("browser.safebrowsing.provider.google4.gethashURL", "http://{server}/safebrowsing4-dummy/gethash");
 user_pref("browser.safebrowsing.provider.google4.updateURL", "http://{server}/safebrowsing4-dummy/update");
 user_pref("browser.safebrowsing.provider.mozilla.gethashURL", "http://{server}/safebrowsing-dummy/gethash");
 user_pref("browser.safebrowsing.provider.mozilla.updateURL", "http://{server}/safebrowsing-dummy/update");
 user_pref("browser.search.suggest.timeout", 10000); // use a 10s suggestion timeout in tests
 // Bug 1458697 - Temporarily enable session store debug logging on Android to track down a test failure
 user_pref("browser.sessionstore.debug_logging", true);
+user_pref("browser.shell.checkDefaultBrowser", false);
 user_pref("browser.snippets.firstrunHomepage.enabled", false);
 user_pref("browser.startup.page", 0); // use about:blank, not browser.startup.homepage
 // Don't show a delay when hiding the audio indicator during tests
 user_pref("browser.tabs.delayHidingAudioPlayingIconMS", 0);
 // Don't allow background tabs to be zombified, otherwise for tests that
 // open additional tabs, the test harness tab itself might get unloaded.
 user_pref("browser.tabs.disableBackgroundZombification", true);
 // Don't use auto-enabled e10s
@@ -65,28 +71,36 @@ user_pref("browser.ui.layout.tablet", 0)
 // Ensure UITour won't hit the network
 user_pref("browser.uitour.pinnedTabUrl", "http://{server}/uitour-dummy/pinnedTab");
 user_pref("browser.uitour.url", "http://{server}/uitour-dummy/tour");
 user_pref("browser.urlbar.speculativeConnect.enabled", false);
 // Turn off search suggestions in the location bar so as not to trigger network
 // connections.
 user_pref("browser.urlbar.suggest.searches", false);
 user_pref("browser.urlbar.usepreloadedtopurls.enabled", false);
+// Turn off the location bar search suggestions opt-in.  It interferes with
+// tests that don't expect it to be there.
+user_pref("browser.urlbar.userMadeSearchSuggestionsChoice", true);
+user_pref("browser.warnOnQuit", false);
 // Enable webapps testing mode, which bypasses native installation.
 user_pref("browser.webapps.testing", true);
 user_pref("captivedetect.canonicalURL", "http://{server}/captive-detect/success.txt");
 // Point Firefox Health Report at a local server. We don't care if it actually
 // works. It just can't hit the default production endpoint.
 user_pref("datareporting.healthreport.documentServerURI", "http://{server}/healthreport/");
 user_pref("datareporting.healthreport.uploadEnabled", false);
 user_pref("devtools.browsertoolbox.panel", "jsdebugger");
+user_pref("devtools.chrome.enabled", false);
 user_pref("devtools.debugger.prompt-connection", true);
+user_pref("devtools.debugger.remote-enabled", false);
 user_pref("devtools.debugger.remote-port", 6023);
 user_pref("devtools.devedition.promo.enabled", false);
 user_pref("devtools.testing", true);
+user_pref("dom.allow_scripts_to_close_windows", true);
+user_pref("dom.disable_open_during_load", false);
 user_pref("dom.experimental_forms", true); // on for testing
 user_pref("dom.forms.color", true); // on for testing
 user_pref("dom.forms.datetime", true); // on for testing
 user_pref("dom.forms.datetime.others", true); // on for testing
 // Enable Gamepad
 user_pref("dom.gamepad.enabled", true);
 user_pref("dom.gamepad.non_standard_events.enabled", true);
 user_pref("dom.ipc.reportProcessHangs", false); // process hang monitor
@@ -167,52 +181,65 @@ user_pref("layout.css.prefixes.device-pi
 // Enable webkit prefixed CSS features for testing
 user_pref("layout.css.prefixes.webkit", true);
 // Make sure CSS error reporting is enabled for tests
 user_pref("layout.css.report_errors", true);
 // Enable CSS shape-outside for testing
 user_pref("layout.css.shape-outside.enabled", true);
 // Disable spammy layout warnings because they pollute test logs
 user_pref("layout.spammy_warnings.enabled", false);
+// Make tests run consistently on DevEdition (which has a lightweight theme
+// selected by default).
+user_pref("lightweightThemes.selectedThemeID", "");
 // Disable all recommended Marionette preferences for Gecko tests.
 // The prefs recommended by Marionette are typically geared towards
 // consumer automation; not vendor testing.
 user_pref("marionette.prefs.recommended", false);
 user_pref("media.autoplay.enabled", true);
 user_pref("media.cache_size", 1000);
 user_pref("media.dormant-on-pause-timeout-ms", 0); // Enter dormant immediately without waiting for timeout.
 // Set the number of shmems the PChromiumCDM protocol pre-allocates to 0,
 // so that we test the case where we under-estimate how many shmems we need
 // to send decoded video frames from the CDM to Gecko.
 user_pref("media.eme.chromium-api.video-shmems", 0);
 user_pref("media.eme.enabled", true);
 // Make sure GMPInstallManager won't hit the network.
 user_pref("media.gmp-manager.url.override", "http://{server}/dummy-gmp-manager.xml");
 user_pref("media.hls.server.url", "http://{server}/tests/dom/media/test/hls");
+// Don't block old libavcodec libraries when testing, because our test systems
+// cannot easily be upgraded.
+user_pref("media.libavcodec.allow-obsolete", true);
 // Enable Media Source Extensions for testing
 user_pref("media.mediasource.mp4.enabled", true);
 user_pref("media.mediasource.webm.enabled", true);
 user_pref("media.memory_cache_max_size", 32);
 user_pref("media.memory_caches_combined_limit_kb", 256);
 user_pref("media.openUnsupportedTypeWithExternalApp", false);
 user_pref("media.preload.auto", 3); // auto = enough
 user_pref("media.preload.default", 2); // default = metadata
 user_pref("media.suspend-bkgnd-video.enabled", false);
 user_pref("media.test.dumpDebugInfo", true);
 user_pref("media.volume_scale", "0.01");
 // Enable speech synth test service, and disable built in platform services.
 user_pref("media.webspeech.synth.test", true);
 user_pref("network.http.prompt-temp-redirect", false);
+// Disable speculative connections so they aren't reported as leaking when they're hanging around.
+user_pref("network.http.speculative-parallel-limit", 0);
 user_pref("network.manage-offline-status", false);
 // We know the SNTP request will fail, since localhost isn't listening on
 // port 135. The default number of retries (10) is excessive, but retrying
 // at least once will mean that codepath is still tested in automation.
 user_pref("network.sntp.maxRetryCount", 1);
 // Make sure SNTP requests don't hit the network
 user_pref("network.sntp.pools", "{server}");
+// Set places maintenance far in the future (the maximum time possible in an
+// int32_t) to avoid it kicking in during tests. The maintenance can take a
+// relatively long time which may cause unnecessary intermittents and slow down
+// tests. This, like many things, will stop working correctly in 2038.
+user_pref("places.database.lastMaintenance", 2147483647);
 // For Firefox 52 only, ESR will support non-Flash plugins while release will
 // not, so we keep testing the non-Flash pathways
 user_pref("plugin.load_flash_only", false);
 user_pref("privacy.trackingprotection.introURL", "http://{server}/trackingprotection/tour");
 user_pref("security.default_personal_cert", "Select Automatically"); // Need to client auth test be w/o any dialogs
 // Existing tests don't wait for the notification button security delay
 user_pref("security.notification_enable_delay", 0);
 // Make sure SSL Error reports don't hit the network