This makes Merino opt out on Beta. There are two different parts: 1. Decide what "Beta" means. After discussing this with RyanVM, I'm using the same definition [used by telemetry](https://searchfox.org/mozilla-central/rev/2f47e3dacf0d773e9c7f363cecf10cfbea490679/toolkit/components/telemetry/app/TelemetryControllerBase.jsm#103,112-114): (a) if `MOZ_UPDATE_CHANNEL` is "beta" or (b) if it's "release" and `app.update.channel` is "beta". The latter case is true for RC builds delivered to the Beta channel. I moved the relevant telemetry logic to `AppConstants` so I can easily use it too. Bug 1435753 has context on this logic w/r/t telemetry. 2. Change the Merino default so it's enabled on Beta in the offline scenario. I kept the online scenario's disabled default since the only point of delivering the online scenario to the user now is to prompt them to opt in to Merino. This change is in UrlbarPrefs.sys.mjs. The rest of the patch updates tests. The effect of this patch will be to use a new default value of true for the `quicksuggest.dataCollection.enabled` pref on Beta in the offline scenario. If the user didn't touch the pref at all, then its previous default value was false, and the new default will now be true. If the user enabled the pref, it will remain enabled. If the user enabled and then disabled it, it will remain disabled. That's because the pref is sticky, so once it has a value on the user branch, it will keep that value. This patch only changes the value of the pref on the default branch, so it won't override the user's previous choice since that is set on the user branch. Differential Revision: https://phabricator.services.mozilla.com/D162353
504 lines
8.7 KiB
JavaScript
504 lines
8.7 KiB
JavaScript
#filter substitution
|
|
#include @TOPOBJDIR@/source-repo.h
|
|
#include @TOPOBJDIR@/buildid.h
|
|
/* 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/. */
|
|
|
|
const lazy = {};
|
|
ChromeUtils.defineModuleGetter(lazy, "AddonManager", "resource://gre/modules/AddonManager.jsm");
|
|
|
|
// Immutable for export.
|
|
export var AppConstants = Object.freeze({
|
|
// See this wiki page for more details about channel specific build
|
|
// defines: https://wiki.mozilla.org/Platform/Channel-specific_build_defines
|
|
NIGHTLY_BUILD:
|
|
#ifdef NIGHTLY_BUILD
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
RELEASE_OR_BETA:
|
|
#ifdef RELEASE_OR_BETA
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
EARLY_BETA_OR_EARLIER:
|
|
#ifdef EARLY_BETA_OR_EARLIER
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
/**
|
|
* @returns {boolean}
|
|
* Returns whether the build is a release candidate on the Beta channel.
|
|
* For non-RC builds on the Beta channel, `MOZ_UPDATE_CHANNEL` is "beta",
|
|
* but for RC build's it's "release". See bug 1435753 for more.
|
|
*
|
|
* WARNING: Do not use this value to change Firefox behavior without a
|
|
* strong reason to do so. Any divergence in behavior between Beta and
|
|
* Release, between non-RC Beta and RC Beta, or between RC and Release puts
|
|
* us in a position where we have very limited time to test Release behavior
|
|
* before shipping it. When possible, please use the usual flags for
|
|
* preventing features from riding past pre-release such as `NIGHTLY_BUILD`
|
|
* and `EARLY_BETA_OR_EARLIER`.
|
|
*/
|
|
get isReleaseCandidateOnBeta() {
|
|
return (
|
|
AppConstants.MOZ_UPDATE_CHANNEL === "release" &&
|
|
Services.prefs.getCharPref("app.update.channel", null) === "beta"
|
|
);
|
|
},
|
|
|
|
IS_ESR:
|
|
#ifdef MOZ_ESR
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
ACCESSIBILITY:
|
|
#ifdef ACCESSIBILITY
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
// Official corresponds, roughly, to whether this build is performed
|
|
// on Mozilla's continuous integration infrastructure. You should
|
|
// disable developer-only functionality when this flag is set.
|
|
MOZILLA_OFFICIAL:
|
|
#ifdef MOZILLA_OFFICIAL
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_OFFICIAL_BRANDING:
|
|
#ifdef MOZ_OFFICIAL_BRANDING
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_DEV_EDITION:
|
|
#ifdef MOZ_DEV_EDITION
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_SERVICES_SYNC:
|
|
#ifdef MOZ_SERVICES_SYNC
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_SERVICES_HEALTHREPORT:
|
|
#ifdef MOZ_SERVICES_HEALTHREPORT
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_DATA_REPORTING:
|
|
#ifdef MOZ_DATA_REPORTING
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_SANDBOX:
|
|
#ifdef MOZ_SANDBOX
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_TELEMETRY_REPORTING:
|
|
#ifdef MOZ_TELEMETRY_REPORTING
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_TELEMETRY_ON_BY_DEFAULT:
|
|
#ifdef MOZ_TELEMETRY_ON_BY_DEFAULT
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_UPDATER:
|
|
#ifdef MOZ_UPDATER
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_SWITCHBOARD:
|
|
#ifdef MOZ_SWITCHBOARD
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_WEBRTC:
|
|
#ifdef MOZ_WEBRTC
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_WIDGET_GTK:
|
|
#ifdef MOZ_WIDGET_GTK
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
XP_UNIX:
|
|
#ifdef XP_UNIX
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
// NOTE! XP_LINUX has to go after MOZ_WIDGET_ANDROID otherwise Android
|
|
// builds will be misidentified as linux.
|
|
platform:
|
|
#ifdef MOZ_WIDGET_GTK
|
|
"linux",
|
|
#elif XP_WIN
|
|
"win",
|
|
#elif XP_MACOSX
|
|
"macosx",
|
|
#elif MOZ_WIDGET_ANDROID
|
|
"android",
|
|
#elif XP_LINUX
|
|
"linux",
|
|
#else
|
|
"other",
|
|
#endif
|
|
|
|
// Most of our frontend code assumes that any desktop Unix platform
|
|
// is "linux". Add the distinction for code that needs it.
|
|
unixstyle:
|
|
#ifdef XP_LINUX
|
|
"linux",
|
|
#elif XP_OPENBSD
|
|
"openbsd",
|
|
#elif XP_NETBSD
|
|
"netbsd",
|
|
#elif XP_FREEBSD
|
|
"freebsd",
|
|
#elif XP_SOLARIS
|
|
"solaris",
|
|
#else
|
|
"other",
|
|
#endif
|
|
|
|
isPlatformAndVersionAtLeast(platform, version) {
|
|
let platformVersion = Services.sysinfo.getProperty("version");
|
|
return platform == this.platform &&
|
|
Services.vc.compare(platformVersion, version) >= 0;
|
|
},
|
|
|
|
isPlatformAndVersionAtMost(platform, version) {
|
|
let platformVersion = Services.sysinfo.getProperty("version");
|
|
return platform == this.platform &&
|
|
Services.vc.compare(platformVersion, version) <= 0;
|
|
},
|
|
|
|
MOZ_CRASHREPORTER:
|
|
#ifdef MOZ_CRASHREPORTER
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_NORMANDY:
|
|
#ifdef MOZ_NORMANDY
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_MAINTENANCE_SERVICE:
|
|
#ifdef MOZ_MAINTENANCE_SERVICE
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_BACKGROUNDTASKS:
|
|
#ifdef MOZ_BACKGROUNDTASKS
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_UPDATE_AGENT:
|
|
#ifdef MOZ_UPDATE_AGENT
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_BITS_DOWNLOAD:
|
|
#ifdef MOZ_BITS_DOWNLOAD
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
DEBUG:
|
|
#ifdef DEBUG
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
ASAN:
|
|
#ifdef MOZ_ASAN
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
ASAN_REPORTER:
|
|
#ifdef MOZ_ASAN_REPORTER
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
TSAN:
|
|
#ifdef MOZ_TSAN
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_SYSTEM_NSS:
|
|
#ifdef MOZ_SYSTEM_NSS
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_PLACES:
|
|
#ifdef MOZ_PLACES
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_REQUIRE_SIGNING:
|
|
#ifdef MOZ_REQUIRE_SIGNING
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
get MOZ_UNSIGNED_SCOPES() {
|
|
let result = 0;
|
|
#ifdef MOZ_UNSIGNED_APP_SCOPE
|
|
result |= lazy.AddonManager.SCOPE_APPLICATION;
|
|
#endif
|
|
#ifdef MOZ_UNSIGNED_SYSTEM_SCOPE
|
|
result |= lazy.AddonManager.SCOPE_SYSTEM;
|
|
#endif
|
|
return result;
|
|
},
|
|
|
|
MOZ_ALLOW_ADDON_SIDELOAD:
|
|
#ifdef MOZ_ALLOW_ADDON_SIDELOAD
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_WEBEXT_WEBIDL_ENABLED:
|
|
#ifdef MOZ_WEBEXT_WEBIDL_ENABLED
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MENUBAR_CAN_AUTOHIDE:
|
|
#ifdef MENUBAR_CAN_AUTOHIDE
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_ANDROID_HISTORY:
|
|
#ifdef MOZ_ANDROID_HISTORY
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_GECKO_PROFILER:
|
|
#ifdef MOZ_GECKO_PROFILER
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
DLL_PREFIX: "@DLL_PREFIX@",
|
|
DLL_SUFFIX: "@DLL_SUFFIX@",
|
|
|
|
MOZ_APP_NAME: "@MOZ_APP_NAME@",
|
|
MOZ_APP_BASENAME: "@MOZ_APP_BASENAME@",
|
|
// N.b.: you almost certainly want brandShortName/brand-short-name:
|
|
// MOZ_APP_DISPLAYNAME should only be used for static user-visible
|
|
// fields (e.g., DLL properties, Mac Bundle name, or similar).
|
|
MOZ_APP_DISPLAYNAME_DO_NOT_USE: "@MOZ_APP_DISPLAYNAME@",
|
|
MOZ_APP_VERSION: "@MOZ_APP_VERSION@",
|
|
MOZ_APP_VERSION_DISPLAY: "@MOZ_APP_VERSION_DISPLAY@",
|
|
MOZ_BUILDID: "@MOZ_BUILDID@",
|
|
MOZ_BUILD_APP: "@MOZ_BUILD_APP@",
|
|
MOZ_MACBUNDLE_ID: "@MOZ_MACBUNDLE_ID@",
|
|
MOZ_MACBUNDLE_NAME: "@MOZ_MACBUNDLE_NAME@",
|
|
MOZ_UPDATE_CHANNEL: "@MOZ_UPDATE_CHANNEL@",
|
|
MOZ_WIDGET_TOOLKIT: "@MOZ_WIDGET_TOOLKIT@",
|
|
ANDROID_PACKAGE_NAME: "@ANDROID_PACKAGE_NAME@",
|
|
|
|
DEBUG_JS_MODULES: "@DEBUG_JS_MODULES@",
|
|
|
|
MOZ_BING_API_CLIENTID: "@MOZ_BING_API_CLIENTID@",
|
|
MOZ_BING_API_KEY: "@MOZ_BING_API_KEY@",
|
|
MOZ_GOOGLE_LOCATION_SERVICE_API_KEY: "@MOZ_GOOGLE_LOCATION_SERVICE_API_KEY@",
|
|
MOZ_GOOGLE_SAFEBROWSING_API_KEY: "@MOZ_GOOGLE_SAFEBROWSING_API_KEY@",
|
|
MOZ_MOZILLA_API_KEY: "@MOZ_MOZILLA_API_KEY@",
|
|
|
|
BROWSER_CHROME_URL: "@BROWSER_CHROME_URL@",
|
|
|
|
OMNIJAR_NAME: "@OMNIJAR_NAME@",
|
|
|
|
// URL to the hg revision this was built from (e.g.
|
|
// "https://hg.mozilla.org/mozilla-central/rev/6256ec9113c1")
|
|
// On unofficial builds, this is an empty string.
|
|
#ifndef MOZ_SOURCE_URL
|
|
#define MOZ_SOURCE_URL
|
|
#endif
|
|
SOURCE_REVISION_URL: "@MOZ_SOURCE_URL@",
|
|
|
|
HAVE_USR_LIB64_DIR:
|
|
#ifdef HAVE_USR_LIB64_DIR
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
HAVE_SHELL_SERVICE:
|
|
#ifdef HAVE_SHELL_SERVICE
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_CODE_COVERAGE:
|
|
#ifdef MOZ_CODE_COVERAGE
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
TELEMETRY_PING_FORMAT_VERSION: @TELEMETRY_PING_FORMAT_VERSION@,
|
|
|
|
MOZ_NEW_XULSTORE:
|
|
#ifdef MOZ_NEW_XULSTORE
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_NEW_NOTIFICATION_STORE:
|
|
#ifdef MOZ_NEW_NOTIFICATION_STORE
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
ENABLE_WEBDRIVER:
|
|
#ifdef ENABLE_WEBDRIVER
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
REMOTE_SETTINGS_SERVER_URL:
|
|
#ifdef MOZ_THUNDERBIRD
|
|
"https://thunderbird-settings.thunderbird.net/v1",
|
|
#else
|
|
"https://firefox.settings.services.mozilla.com/v1",
|
|
#endif
|
|
|
|
REMOTE_SETTINGS_VERIFY_SIGNATURE:
|
|
#ifdef MOZ_THUNDERBIRD
|
|
false,
|
|
#else
|
|
true,
|
|
#endif
|
|
|
|
REMOTE_SETTINGS_DEFAULT_BUCKET:
|
|
#ifdef MOZ_THUNDERBIRD
|
|
"thunderbird",
|
|
#else
|
|
"main",
|
|
#endif
|
|
|
|
MOZ_GLEAN_ANDROID:
|
|
#ifdef MOZ_GLEAN_ANDROID
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_JXL:
|
|
#ifdef MOZ_JXL
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_CAN_FOLLOW_SYSTEM_TIME:
|
|
#ifdef XP_WIN
|
|
true,
|
|
#elif XP_MACOSX
|
|
true,
|
|
#elif MOZ_WIDGET_GTK
|
|
#ifdef MOZ_ENABLE_DBUS
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
MOZ_SYSTEM_POLICIES:
|
|
#ifdef MOZ_SYSTEM_POLICIES
|
|
true,
|
|
#else
|
|
false,
|
|
#endif
|
|
|
|
// Returns true for CN region build when distibution id set as 'MozillaOnline'
|
|
isChinaRepack() {
|
|
return (
|
|
Services.prefs
|
|
.getDefaultBranch("")
|
|
.getCharPref("distribution.id", "default") === "MozillaOnline"
|
|
);
|
|
},
|
|
});
|