forked from mirrors/gecko-dev
This patch adds support for downloading the Widevine L1 plugin for Windows and WMF. It is disabled by default. It does not integrate utilizing the plugin with our WMF framework. New prefs for the new plugin type include: - media.gmp-widevinecdm-l1.visible - media.gmp-widevinecdm-l1.enabled - media.gmp-widevinecdm-l1.forceInstall All of the above should be flipped to true in order to make Firefox install the plugin. The GMPParent for the plugin can be discovered using SelectPluginForAPI. The API tags are com.widevine.alpha.experiment and com.widevine.alpha.experiment2. Differential Revision: https://phabricator.services.mozilla.com/D192367
482 lines
7.8 KiB
JavaScript
482 lines
7.8 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
|
|
|
|
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
|
|
|
|
MOZ_WMF_CDM:
|
|
#ifdef MOZ_WMF_CDM
|
|
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_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"
|
|
);
|
|
},
|
|
});
|