2 #include @TOPOBJDIR@/source-repo.h
3 #include @TOPOBJDIR@/buildid.h
4 /* This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
6 * You can obtain one at http://mozilla.org/MPL/2.0/. */
9 * AppConstants is a set of immutable constants that are defined at build time.
10 * These should not depend on any other JavaScript module.
12 export var AppConstants = Object.freeze({
13 // See this wiki page for more details about channel specific build
14 // defines: https://wiki.mozilla.org/Platform/Channel-specific_build_defines
23 #ifdef RELEASE_OR_BETA
29 EARLY_BETA_OR_EARLIER:
30 #ifdef EARLY_BETA_OR_EARLIER
50 // Official corresponds, roughly, to whether this build is performed
51 // on Mozilla's continuous integration infrastructure. You should
52 // disable developer-only functionality when this flag is set.
54 #ifdef MOZILLA_OFFICIAL
60 MOZ_OFFICIAL_BRANDING:
61 #ifdef MOZ_OFFICIAL_BRANDING
68 #ifdef MOZ_DEV_EDITION
75 #ifdef MOZ_SERVICES_SYNC
81 MOZ_SERVICES_HEALTHREPORT:
82 #ifdef MOZ_SERVICES_HEALTHREPORT
89 #ifdef MOZ_DATA_REPORTING
102 MOZ_TELEMETRY_REPORTING:
103 #ifdef MOZ_TELEMETRY_REPORTING
109 MOZ_TELEMETRY_ON_BY_DEFAULT:
110 #ifdef MOZ_TELEMETRY_ON_BY_DEFAULT
124 #ifdef MOZ_SWITCHBOARD
138 #ifdef MOZ_WIDGET_GTK
158 // NOTE! XP_LINUX has to go after MOZ_WIDGET_ANDROID otherwise Android
159 // builds will be misidentified as linux.
161 #ifdef MOZ_WIDGET_GTK
167 #elif MOZ_WIDGET_ANDROID
175 // Most of our frontend code assumes that any desktop Unix platform
176 // is "linux". Add the distinction for code that needs it.
192 isPlatformAndVersionAtLeast(platform, version) {
193 let platformVersion = Services.sysinfo.getProperty("version");
194 return platform == this.platform &&
195 Services.vc.compare(platformVersion, version) >= 0;
198 isPlatformAndVersionAtMost(platform, version) {
199 let platformVersion = Services.sysinfo.getProperty("version");
200 return platform == this.platform &&
201 Services.vc.compare(platformVersion, version) <= 0;
205 #ifdef MOZ_CRASHREPORTER
218 MOZ_MAINTENANCE_SERVICE:
219 #ifdef MOZ_MAINTENANCE_SERVICE
226 #ifdef MOZ_BACKGROUNDTASKS
233 #ifdef MOZ_UPDATE_AGENT
240 #ifdef MOZ_BITS_DOWNLOAD
261 #ifdef MOZ_ASAN_REPORTER
275 #ifdef MOZ_SYSTEM_NSS
289 #ifdef MOZ_REQUIRE_SIGNING
295 MOZ_UNSIGNED_APP_SCOPE:
296 #ifdef MOZ_UNSIGNED_APP_SCOPE
302 MOZ_UNSIGNED_SYSTEM_SCOPE:
303 #ifdef MOZ_UNSIGNED_SYSTEM_SCOPE
309 MOZ_ALLOW_ADDON_SIDELOAD:
310 #ifdef MOZ_ALLOW_ADDON_SIDELOAD
316 MOZ_WEBEXT_WEBIDL_ENABLED:
317 #ifdef MOZ_WEBEXT_WEBIDL_ENABLED
323 MENUBAR_CAN_AUTOHIDE:
324 #ifdef MENUBAR_CAN_AUTOHIDE
330 MOZ_GECKOVIEW_HISTORY:
331 #ifdef MOZ_GECKOVIEW_HISTORY
338 #ifdef MOZ_GECKO_PROFILER
344 DLL_PREFIX: "@DLL_PREFIX@",
345 DLL_SUFFIX: "@DLL_SUFFIX@",
347 MOZ_APP_NAME: "@MOZ_APP_NAME@",
348 MOZ_APP_BASENAME: "@MOZ_APP_BASENAME@",
349 // N.b.: you almost certainly want brandShortName/brand-short-name:
350 // MOZ_APP_DISPLAYNAME should only be used for static user-visible
351 // fields (e.g., DLL properties, Mac Bundle name, or similar).
352 MOZ_APP_DISPLAYNAME_DO_NOT_USE: "@MOZ_APP_DISPLAYNAME@",
353 MOZ_APP_VERSION: "@MOZ_APP_VERSION@",
354 MOZ_APP_VERSION_DISPLAY: "@MOZ_APP_VERSION_DISPLAY@",
355 MOZ_BUILDID: "@MOZ_BUILDID@",
356 MOZ_BUILD_APP: "@MOZ_BUILD_APP@",
357 MOZ_MACBUNDLE_ID: "@MOZ_MACBUNDLE_ID@",
358 MOZ_MACBUNDLE_NAME: "@MOZ_MACBUNDLE_NAME@",
359 MOZ_UPDATE_CHANNEL: "@MOZ_UPDATE_CHANNEL@",
360 MOZ_WIDGET_TOOLKIT: "@MOZ_WIDGET_TOOLKIT@",
361 ANDROID_PACKAGE_NAME: "@ANDROID_PACKAGE_NAME@",
363 DEBUG_JS_MODULES: "@DEBUG_JS_MODULES@",
365 MOZ_BING_API_CLIENTID: "@MOZ_BING_API_CLIENTID@",
366 MOZ_BING_API_KEY: "@MOZ_BING_API_KEY@",
367 MOZ_GOOGLE_LOCATION_SERVICE_API_KEY: "@MOZ_GOOGLE_LOCATION_SERVICE_API_KEY@",
368 MOZ_GOOGLE_SAFEBROWSING_API_KEY: "@MOZ_GOOGLE_SAFEBROWSING_API_KEY@",
369 MOZ_MOZILLA_API_KEY: "@MOZ_MOZILLA_API_KEY@",
371 BROWSER_CHROME_URL: "@BROWSER_CHROME_URL@",
373 OMNIJAR_NAME: "@OMNIJAR_NAME@",
375 // URL to the hg revision this was built from (e.g.
376 // "https://hg.mozilla.org/mozilla-central/rev/6256ec9113c1")
377 // On unofficial builds, this is an empty string.
378 #ifndef MOZ_SOURCE_URL
379 #define MOZ_SOURCE_URL
381 SOURCE_REVISION_URL: "@MOZ_SOURCE_URL@",
384 #ifdef HAVE_USR_LIB64_DIR
391 #ifdef HAVE_SHELL_SERVICE
398 #ifdef MOZ_CODE_COVERAGE
404 TELEMETRY_PING_FORMAT_VERSION: @TELEMETRY_PING_FORMAT_VERSION@,
406 MOZ_NEW_NOTIFICATION_STORE:
407 #ifdef MOZ_NEW_NOTIFICATION_STORE
414 #ifdef ENABLE_WEBDRIVER
420 REMOTE_SETTINGS_SERVER_URL:
421 #ifdef MOZ_THUNDERBIRD
422 "https://thunderbird-settings.thunderbird.net/v1",
424 "https://firefox.settings.services.mozilla.com/v1",
427 REMOTE_SETTINGS_VERIFY_SIGNATURE:
428 #ifdef MOZ_THUNDERBIRD
434 REMOTE_SETTINGS_DEFAULT_BUCKET:
435 #ifdef MOZ_THUNDERBIRD
442 #ifdef MOZ_GLEAN_ANDROID
455 #if defined(MOZ_THUNDERBIRD) || defined(MOZ_SUITE)
456 MOZ_CAN_FOLLOW_SYSTEM_TIME:
462 #ifdef MOZ_ENABLE_DBUS
473 #ifdef MOZ_SYSTEM_POLICIES
479 MOZ_SELECTABLE_PROFILES:
480 #ifdef MOZ_SELECTABLE_PROFILES
486 // Returns true for CN region build when distibution id set as 'MozillaOnline'
490 .getDefaultBranch("")
491 .getCharPref("distribution.id", "default") === "MozillaOnline"